SnackBar
SnakeBar与Toast相似,不过SnakeBar可以与用户进行交互。
不过首先需要在app/bulid.gradle中添加一句依赖,操作方法如下
点击这个灯泡,选择Add Library dependency然后添加下面的依赖
implementation 'com.android.support:design:28.0.0'
snakeBar的使用方法与Toast的方法基本一样,就是以下代码
Snackbar.make(v,"hello",Snackbar.LENGTH_LONG).show();
- 第一个参数参数是view
- 第二个是消息内容
- 第三个是存在时间的长度
- 当SnakeBar出现的时候,布局会移动一些ui元素
看下面代码:
package com.example.snakebar;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.Button;import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btn = (Button) findViewById(R.id.btn);FloatingActionButton fbtn = (FloatingActionButton) findViewById(R.id.fab);btn.setOnClickListener(new View.OnClickListener() {//btn的snakeBar@Overridepublic void onClick(View v) {Snackbar.make(v, "hello", Snackbar.LENGTH_LONG).show();}});fbtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Snackbar.make(v, "hello", Snackbar.LENGTH_INDEFINITE).setAction("undo", new View.OnClickListener() {@Overridepublic void onClick(View v) {}}).show();}});}
}
xml代码
<?xml version="1.0" encoding="utf-8"?>
<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"><Buttonandroid:id="@+id/btn"android:text="点击我"android:layout_width="wrap_content"android:layout_height="wrap_content"></Button><com.google.android.material.floatingactionbutton.FloatingActionButtonandroid:id="@+id/fab"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="end|bottom"android:src="@android:drawable/ic_input_add"android:layout_margin="16dp"
></com.google.android.material.floatingactionbutton.FloatingActionButton>
</androidx.coordinatorlayout.widget.CoordinatorLayout>