android - CoordinatorLayout 内具有 FloatingActionButton 的 BottomNavigationView 与位置不匹配

标签 android android-coordinatorlayout material-components material-components-android android-bottomnav

我想在滚动时隐藏底部栏,但 FAB 应保留在屏幕上。

如果我使用 anchor 将 FAB 放在 BottomNavigationView 顶部,但它出现在其后面。

如果我将 layout_insetEdge="bottom" 放入 BottomNavigationView 那么它可以工作,但会使我的测试失败( https://issuetracker.google.com/issues/70162122 ),所以我目前无法使用它。

enter image description here

布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:id="@+id/mainLayout"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:fitsSystemWindows="true"
  tools:context=".screens.main.MainActivity">

  <FrameLayout
    android:id="@+id/mainContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/scrolling_view_behaviour" />

  <android.support.design.widget.FloatingActionButton
    android:id="@+id/mainNewQuestionButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/spacing_8dp"
    app:layout_anchor="@+id/mainBottomNavigationView"
    app:layout_anchorGravity="top|right|end"
    app:srcCompat="@drawable/create_question"
    tools:visibility="visible" />

  <android.support.design.widget.BottomNavigationView
    android:id="@+id/mainBottomNavigationView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:itemBackground="@color/my_gray"
    app:itemIconTint="@drawable/selector_bottombar_item"
    app:itemTextColor="@drawable/selector_bottombar_item"
    app:layout_anchor="@id/mainContainer"
    app:layout_anchorGravity="bottom"
    app:layout_behavior="@string/hide_bottom_navigation_view_behaviour"
    app:menu="@menu/bottom_navigation_main" />

</android.support.design.widget.CoordinatorLayout>

最佳答案

只需使用:

<androidx.coordinatorlayout.widget.CoordinatorLayout>

 <com.google.android.material.bottomnavigation.BottomNavigationView
      android:id="@+id/bottom_navigation"
      android:layout_gravity="bottom"
      .../>

  <com.google.android.material.floatingactionbutton.FloatingActionButton
      android:layout_gravity="top"
      app:layout_anchor="@id/bottom_navigation"
      app:layout_anchorGravity="top|end"
      />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

enter image description here

关于android - CoordinatorLayout 内具有 FloatingActionButton 的 BottomNavigationView 与位置不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47640518/

相关文章:

android - Recyclerview 在没有折叠工具栏的情况下滚动

android - 将静态 fragment 与新设计支持库的 CoordinatorLayout 一起使用

ios - 我无法导入我需要的东西,以使用 MaterialContainerScheme

java - 使用 Mailgun 发送电子邮件 - 找不到 Java 类型 FormDataMultiPart 和 MIME 媒体类型 application/x-www-form-urlencoded 的消息正文编写器

android - 使 ImageView 具有深色透明度

android - 在 Android 上获取给定边界的 map 缩放级别,就像在 JS Google Maps API 上一样 : map. getBoundsZoomLevel(bounds)

android - 协调器布局和相对布局问题

dart - 如何以编程方式在 Flutter 中选择 BottomNavigationBar Tab 而不是内置 onTap 回调?

android - 如何让子ImageView采用父MaterialCardView的形状外观?