当BottomAppBar从隐藏状态返回时,BottomAppBar FabCradleMargin变得较少,几乎是平的

当我在应用程序中导航并向上/向下滚动时,当hideonScroll设置为True时,我的FabCradleMargin在我底部的应用程序栏中变得较少,几乎平坦。当BottomAppBar隐藏在屏幕上时,它会在浮动的操作按钮下返回Resizeed。一定是新的安卓材料组件出现了故障。有没有其他人遇到过这个问题。如果是这样,您对修复它有什么建议。

<com.google.android.material.bottomappbar.BottomAppBar
    android:id="@+id/bar"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_gravity="bottom"
    app:elevation="4dp"
    app:fabAlignmentMode="center"
    app:fabCradleRoundedCornerRadius="2dp"
    app:hideOnScroll="true"
    app:layout_scrollFlags="scroll|enterAlways"
    app:navigationIcon="@drawable/ic_action_list" />

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:backgroundTint="@color/blue500"
    app:fabSize="normal"
    app:layout_anchor="@+id/bar"
    app:tint="@color/white"
    app:layout_anchorGravity="right"
    app:srcCompat="@drawable/ic_select_camera" />

解决方案

我也遇到了这个问题。在我的例子中,这取决于我试图隐藏BottomAppBarFloatingActionButton的方式。这是我第一次(Kotlin):

private fun showBottomNavigationBar(barVisibility: Boolean, fabVisibility: Boolean) {
    navView.visibility = if (barVisibility) BottomAppBar.VISIBLE else BottomAppBar.GONE
    fab.visibility = if (fabVisibility) FloatingActionButton.VISIBLE else FloatingActionButton.GONE
}

以下是修复它的方法:

private fun showBottomNavigationBar(barVisibility: Boolean, fabVisibility: Boolean) {
    navView.visibility = if (barVisibility) BottomAppBar.VISIBLE else BottomAppBar.GONE
    if (fabVisibility) fab.show() else fab.hide()
}

因此,我使用了FloatingActionButtonhide()show()方法,而不是隐藏具有可见性属性的FloatingActionButton

相关文章