我正在构建一个遵循Material Design的应用程序,我想知道如何在滚动时隐藏FAB。谷歌搜索导致几个答案,有些人说提供自定义onScrollListeners等,有些人说实现布局行为。是否有标准/推荐的方法来做到这一点?一种方法比另一种方法有什么优势?
答案 0 :(得分:5)
最好的方法是使用支持设计库中提供的FloatingActionButton
,并重新定义其行为。例如,请查看this class。
您只需将其复制粘贴到项目中,然后将此行为分配给FloatingActionButton
:
<android.support.design.widget.FloatingActionButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="@dimen/fab_margin"
app:layout_behavior="com.your.package.name.ScrollAwareFABBehavior" />
完成后,您的FAB将对滚动手势作出反应并自动隐藏/显示。当然,这与所有Behavior
一样,只有在使用CoordinatorLayout
作为根视图时才有效。
优点:
Behavior
s,这绝对是收听滚动事件的最简单方法。由于FloatingActionButton
是设计库(实现Behavior
s)的一部分,我会说这几乎是官方方式;