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会重新出现