实现滚动感知FloatingActionButton的推荐方法

use*_*467 1 android android-support-library material-design floating-action-button android-design-library

我正在构建一个关于Material Design的应用程序,我想知道如何在滚动时隐藏FAB.谷歌搜索导致几个答案,有些人说提供自定义onScrollListeners等,有些人说实现布局行为.是否有标准/推荐的方法来做到这一点?一种方法比另一种方法有什么优势?

nat*_*rio 5

最好的方法是使用FloatingActionButton支持设计库中提供的,并重新定义其行为.例如,看看这个类.

您可以将其复制粘贴到项目中,然后将此行为分配给您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" />
Run Code Online (Sandbox Code Playgroud)

完成后,您的FAB将对滚动手势作出反应并自动隐藏/显示.当然,与所有Behaviors一样,只有在使用a CoordinatorLayout作为根视图时才有效.

优点:

  • 使用官方图书馆;
  • 使用Behaviors这绝对是听取滚动事件的最简单方法.既然FloatingActionButton是设计库(实现Behaviors)的一部分,我会说这几乎是官方的方式;
  • 行为类是由Ian Lake编写的,就我所知,谷歌在谷歌工作.