【发布时间】:2016-02-13 02:12:51
【问题描述】:
我正在尝试实现 youtube 之类的标签。
有没有办法通过 CoordinatorLayout、AppBarLayout 和 TabLayout 实现这一点?
我已经尝试在片段中更改 onScrollListener 中的 AppBarLayout 高度,但它会导致一些滚动闪烁。
【问题讨论】:
标签: android youtube android-design-library android-tablayout
我正在尝试实现 youtube 之类的标签。
有没有办法通过 CoordinatorLayout、AppBarLayout 和 TabLayout 实现这一点?
我已经尝试在片段中更改 onScrollListener 中的 AppBarLayout 高度,但它会导致一些滚动闪烁。
【问题讨论】:
标签: android youtube android-design-library android-tablayout
绝对有办法做到这一点。这就是 AppBarLayout 的诞生——类似的事情。
但是,如果您尝试在片段中更改 onScrollListener 中的 AppBarLayout 高度,那么您已经偏离了这些组件的工作方式。
请注意,这些组件非常脆弱,只是勉强完成了他们应该做的事情,没有很好的文档记录并且很容易损坏。做一些像敲击 AppBarLayout 高度这样的事情将远远超出“容易打破”的范围,而是冒险进入“这根本不是它应该如何工作”的领域。
将 ListView(或 RecyclerView)放在一个片段中也可能会因为与生命周期和视图实例化顺序相关的各种相当明显的原因而出现严重错误。
我建议从 AppBarLayout 的工作示例开始,然后从那里逐步向前推进。如果您使用的是 Android Studio,请右键单击您的应用文件夹,然后选择 New/Activity/ScrollingActivity,然后从那里开始。
是否可以在片段中从 ListView 或 RecyclerView 驱动 AppBarLayout,我不能说。我认为您应该能够做到这一点;但我建议您先让一个虚拟列表视图作为活动的直接子项,然后再尝试将其迁移到片段。
预计会很难。并期望您将不得不忍受不灵活的实施的限制。他们做他们所做的。并且不喜欢做他们不做的事情。
【讨论】: