我在手机上查看了 Twitter 应用。
当用户向上滚动时,您可以看到 TabLayout 实际上只是将自己很好地固定在工具栏底部,并且不会移动。
我以为他们是通过将应用程序的所有顶部部分(个人资料图片、草地自行车上的个人资料壁纸、文本)放入 CollapsingToolBarLayout 和 AppBarLayout 中来实现的,但实际上,只有草地自行车上的个人资料壁纸是 CollapsingToolBarLayout 和 AppBarLayout 的一部分,因为这是唯一实际折叠的部分。文本部分只是向上滚动,而 TabLayout 只固定在工具栏下方的顶部。
我阅读了 Twitter 应用上的制作人员名单,发现他们使用 SlidingTabLayout 来实现效果。SlidingTabLayout 与 tabLayout 相似,后者受支持库支持。
它看起来是现今主流应用程序中经常使用的模式 -
Google+应用程序在其应用程序的个人资料视图中使用它:
Facebook Moments 在其应用程序中使用它:
你有任何想法如何实现这些效果吗?
我想要做与所有这些应用程序类似的东西。
我的要求是:
- 拥有 CollapsingToolBarLayout,在向上滚动时折叠
- 在 collapsingToolBarLayout 下方有一个 TextView,当它完全折叠时会滚动并“隐藏”在工具栏下面。
我查看了Stack Overflow上发布的另外两个问题:
可以在滚动时将TabLayout的选项卡选择指示器固定在屏幕顶部吗? 这里的答案似乎是改变tabLayout的行为,但我怀疑改变行为是否能真正生成Twitter应用程序实现的效果。如我所提到的,TabLayout似乎位于CollapsingToolBarLayout和AppBarLayout之外,只有当它位于CollapsingToolBarLayout和AppBarLayout内时才有效。
如何在ScrollView顶部固定TabLaout? 这个问题与我提出的类似,但没有足够的细节,并且没有答案。