Android XML环境下如何通过代码控制BottomAppBar的显示状态
代码控制BottomAppBar显示状态完全可行
你遇到的performShow()调用无效的问题,是因为BottomAppBar的滚动隐藏/显示逻辑由其绑定的BottomAppBar.Behavior控制,直接调用View层面的方法无法触发Behavior的状态更新。正确做法是通过CoordinatorLayout获取对应的Behavior,再调用Behavior提供的方法来控制显示隐藏:
实现步骤
- 获取BottomAppBar实例及其对应的Behavior
- 调用Behavior的
show()或hide()方法完成状态控制
代码示例(Kotlin)
val bottomAppBar = findViewById<BottomAppBar>(R.id.your_bottom_app_bar_id) val layoutParams = bottomAppBar.layoutParams as CoordinatorLayout.LayoutParams val behavior = layoutParams.behavior as BottomAppBar.Behavior // 强制显示BottomAppBar behavior.show() // 强制隐藏BottomAppBar behavior.hide()
额外说明
- 如果需要临时禁用自动滚动隐藏的行为,可以设置:
恢复自动行为时再设为behavior.isHideable = falsetrue即可。 - 调用
show()/hide()后,后续的滚动触发逻辑依然会正常工作,不会被永久覆盖。
内容的提问来源于stack exchange,提问作者Nguyễn Minh Khoa
相关产品推荐
相关产品推荐

