【安卓初步】CoordinatorLayout使用(一)

XML

一个简单的TextView,居中

<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/m_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:background="@color/colorPrimary"
        android:layout_gravity="center"
        android:textSize="25sp"
         />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

Activity

package com.aaa_xcdq.gtwo;

import androidx.appcompat.app.AppCompatActivity;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.view.ViewCompat;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import com.google.android.material.behavior.SwipeDismissBehavior;
import com.google.android.material.snackbar.Snackbar;

public class MainActivity extends AppCompatActivity implements SwipeDismissBehavior.OnDismissListener {

    private TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView=findViewById(R.id.m_tv);
        
        //得到layoutParams
        CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) textView.getLayoutParams();

        //新建behavior
        SwipeDismissBehavior<TextView> behavior = new SwipeDismissBehavior<>();
        //给behavior 绑定监听
        behavior.setListener(this);
        
        layoutParams.setBehavior(behavior);
    }

    //当view不见时
    @Override
    public void onDismiss(View view) {
        view.setVisibility(View.GONE);
        Snackbar.make(view,"ooo",Snackbar.LENGTH_LONG)
                .setAction("no", new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        textView.setVisibility(View.VISIBLE);
                        //因为重绘时变透明,所以把透明改回来
                        ViewCompat.animate(textView).alpha(1).start();
                    }
                }).show();
    }

    @Override
    public void onDragStateChanged(int i) {

    }
}

成果是当你滑动TextView时它会消失,并出现Snackbar,如果点击“no”,TextView会重新出现

发布了136 篇原创文章 · 获赞 18 · 访问量 4176

猜你喜欢

转载自blog.csdn.net/xcdq_aaa/article/details/105125653