隐藏FloatingActionButton后BottomAppBar残留凹槽问题解决
解决BottomAppBar隐藏FAB后残留凹槽的问题
问题根源在于你给BottomAppBar设置了app:fabAlignmentMode="end",这个属性会让BottomAppBar始终为FAB预留凹槽位置,哪怕FAB已经隐藏。要消除凹槽,只需要在隐藏/显示FAB的同时动态修改BottomAppBar的对齐模式:
代码修改示例
把你原来的FAB可见性控制代码,改成下面这样:
if (canPlay) { // 显示FAB时,恢复BottomAppBar的凹槽 bottomAppBar.setFabAlignmentMode(BottomAppBar.FAB_ALIGNMENT_MODE_END); mFab.setVisibility(View.VISIBLE); } else { // 隐藏FAB时,移除凹槽,让BottomAppBar变回矩形 bottomAppBar.setFabAlignmentMode(BottomAppBar.FAB_ALIGNMENT_MODE_NONE); mFab.setVisibility(View.GONE); }
额外优化(可选)
如果想要过渡更自然,可以给BottomAppBar添加布局动画:
在布局文件里给BottomAppBar加上android:animateLayoutChanges="true",这样切换对齐模式时会有平滑的过渡效果。
注意事项
确保你的项目使用的是较新版本的Material Components库,避免因版本过低导致setFabAlignmentMode方法不可用。
内容的提问来源于stack exchange,提问作者Alexander Farber
相关产品推荐
相关产品推荐

