4

当在 hideonScroll 设置为 true 时导航我的应用程序并向上/向下滚动时,我的 FabCradleMargin 在底部应用程序栏中变得更少,几乎是平坦的。当 BottomAppBar 从屏幕上隐藏时,它会在 Floating 操作 Button 下返回 resized。一定是新的 Android 材质组件中的故障。有没有其他人遇到过这个问题。如果是这样,你有什么建议来解决它。

图像之前

后像

<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" />
4

1 回答 1

4

我也偶然发现了这个问题。就我而言,这取决于我试图隐藏BottomAppBar和 的方式FloatingActionButton。这是我第一次拥有的(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()
}

FloatingActionButton因此,我没有使用可见性属性隐藏hide(),而是show()使用FloatingActionButton.

于 2019-11-07T15:45:45.180 回答