Android实现悬浮按钮的合理的可交互提示使用FloatingActionButton,Snackbar,CoordinatorLaout的合并使用。这是三个分别是悬浮按钮控件、可交互提示、能监听布局中所有控件并作出合理响应的布局。
Android实现悬浮按钮的合理的可交互提示的实现
1.悬浮按钮的实现FloatingActionButton
<android.support.design.widget.FloatingActionButton android:id="@+id/floatingActionButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginEnd="8dp" android:clickable="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" //设置控件的位置为右下角 android:layout_gravity="bottom|end" //设置控件的投影高度 app:elevation="8dp" app:srcCompat="@drawable/ic_done_black_24dp" />
2.实现控件监听的可交互提示Snackbar
我们一般给用户的提示是Toast提示,你会发现这个提示是强行的提示用户一下。用户拿它毫无办法,只能看看。但是我们有时候需要去提示用户,并且给他们一次反悔的机会。如果用户不小心删除某一个东西,你只给他一个Toast删除提示,那么他会很抓狂(还不如不告诉它,嘻嘻。当然不能这样)。所以我们要给他一个机会,提示他还给他后悔的机会,可以去点击提示恢复数据。这时Snackbar就提供了这样的功能。
这个提示是从屏幕下方出现的。
为我们的悬浮按钮添加这样的控件。
//加载浮动按钮并为其添加监听事件 FloatingActionButton floatingActionButton = findViewById(R.id.floatingActionButton); floatingActionButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //设置可交互提示 Snackbar.make(v,"Data deleted",Snackbar.LENGTH_LONG) .setAction("Undo", new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"Data restored",Toast.LENGTH_LONG).show(); } }).show(); } }); }
3.CoordinatorLaout的使用
当你像上面的那样去实现了之后你会发现当底部的提示出来之后,会挡住上面的悬浮按钮。这样很不美观,所以我们就应该将我们的布局采用CoordinatorLaout。这是一个可以实现监听布局中所有控件,并作出合理的响应的布局。
在这里它就会监听到可交互提示的出现,并将悬浮按钮上移。提示并不会覆盖悬浮按钮。
实现方式:将你的布局方式替换为
<android.support.design.widget.CoordinatorLayout