前言
为了操作一个轻量级的、轻便的反馈是使用Snackbar的最好时机。Snackbar显示在屏幕的底部,包含了文字信息和一个可以操作的按钮。它在指定时间结束之后自动消失。
一、配置build.gradle
使用最新的androidx来配置
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'com.google.android.material:material:1.0.0'
二、布局文件
就一个按钮,用来启动Snackbar
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity"
android:id="@+id/activity_main">
<Button
android:id="@+id/btn"
android:text="@string/SnackBarBtn"
android:textAllCaps="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</LinearLayout>
三、java代码
public class MainActivity extends AppCompatActivity {
private Button btn;
private LinearLayout linearLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
OnClick();
}
public void initView(){
btn=findViewById(R.id.btn);
//需要依附的布局
linearLayout=findViewById(R.id.activity_main);
}
public void OnClick(){
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showSnackBar();
}
});
}
//显示SnackBar
public void showSnackBar(){
Snackbar.make(linearLayout,"I'm title",Snackbar.LENGTH_LONG).setAction("Button", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"showSnackBar even action",Toast.LENGTH_SHORT).show();
}
}).setDuration(3000).show();
}
}
一个按钮来点击显示,然后SnackBar里还会有点击事件,3000毫秒后会消失。
四、效果图
点击里面的按钮,就会执行点击事件,然后消失。