Android实现悬浮按钮的合理的可交互提示

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

效果

猜你喜欢

转载自blog.csdn.net/qq_36607515/article/details/81507640