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

标签 android material-design android-support-library android-design-library floating-action-button

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

最佳答案

最好的方法是使用支持设计库中提供的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 将对滚动手势使用react并自动隐藏/显示。当然,与所有 Behavior 一样,只有当您使用 CoordinatorLayout 作为 Root View 时才有效。

好处:

  • 使用官方图书馆;
  • 使用Behavior,这绝对是监听滚动事件最简单的方法。由于 FloatingActionButton 是设计库的一部分(它实现了 Behavior),我想说这几乎是官方方式;<
  • 那个 Behavior 类是由 Ian Lake 编写的,据我所知他在谷歌工作。

关于android - 实现滚动感知 FloatingActionButton 的推荐方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32668080/

相关文章:

java - Google Play 商店卡片 View

java.lang.IllegalArgumentException : You need to use a Theme. AppCompat 主题(或后代)与设计库

android - 保留 fragment 供以后显示的最佳实践

android - 将本地android支持库添加到gradle构建中,而无需使用SDK Deployer添加到mavenLocal

android - Eclipse 找不到 Android 支持库

android - 如何使用 AddFooterView 使用字符串中的文本添加页脚?

android - 以编程方式为 ActionBarDrawerToggle 图标设置动画

android - 高程属性不工作android

android - 在撰写 TextField 中格式化数字

c# - 如何从代码动态填充ListPreference?