【发布时间】:2015-10-13 19:11:17
【问题描述】:
我正在查看手机上的 twitter 应用程序。
您可以看到,当用户向上滚动时,tabLayout 实际上只是将自己很好地固定在工具栏的底部,并且根本不会移动。
我想也许他们只是将应用程序的所有顶部部分(个人资料图片、草地上自行车的个人资料壁纸、文本)放入 CollapsingToolBarLayout 和 AppBarLayout 中,但实际上,只有个人资料草地上的自行车壁纸是 CollapsingToolBarLayout 和 AppBarLayout 的一部分,因为这是唯一实际折叠的部分。文本部分只是向上滚动,tabLayout 只是固定在工具栏下方的顶部。
我阅读了 twitter 应用程序上的字幕,看来他们使用 SlidingTabLayout 来实现其效果。 SlidingTabLayout 与 tabLayout 类似,支持库支持后者。
这看起来是当今主流应用程序使用的相当普遍的模式 -
Google+ 应用在应用的个人资料视图中使用它:
Facebook Moments 在他们的应用中使用它:
知道他们是如何做到这一点的吗?
我正在寻找与所有这些应用程序类似的东西。
我的要求是:
- 有一个 collapsingToolBarLayout,当您向上滚动时会折叠
- 在 collapsingToolBarLayout 下方有一个 textview,当它完全折叠时,它会滚动并“隐藏”在 toolBar 下方。
- 在 textview 下方有一个 tabLayout,当您在 collapsingToolBarLayout 下滚动 textview 时,它会“粘”到 tabLayout。
- 在 tabLayout 下方有一个 recyclerview,这样当您单击 tabLayout 中的每个选项卡时,recyclerview 将在“推文”、“照片”、“收藏夹”等列表之间切换。
我查看了在 SO 上发布的另外两个问题:
Can the tab selection indicator of TabLayout be pinned to the top of the screen while scrolling?。这里的答案似乎是改变 tabLayout 的行为,但我怀疑改变行为实际上会产生 twitter 应用程序所做的事情。正如我所提到的,tabLayout 似乎位于 CollapsingToolBarLayout 和 AppBarLayout 之外,并且该行为只有在位于 CollapsingToolBarLayout 和 AppBarLayout 之内时才有效。
How to pin TabLaout at top of ScrollView?。这个问题提出的问题与我所问的类似,但没有提供足够的细节,也没有答案。
【问题讨论】:
标签: android android-layout twitter google-plus android-tablayout