Проблема с CoordinatorLayout и FloatingActionButton

#android #xml #android-recyclerview #floatin&-action-button #android-coordinatorlayout

#Android #xml #android-recyclerview #кнопка плавающего действия #android-coordinatorlayout

Вопрос:

На картинке 1 это выглядит нормально, но на картинке 2, поскольку у FAB есть app:layout_anchor="@id/recyclerview_list" атрибут, это выглядит не очень хорошо. Есть ли способ привязать FAB к нижней стороне без добавления пользовательской нижней панели навигации? Я просто хочу, чтобы эта кнопка оставалась на месте постоянно, даже если RecyclerView изменяет ее высоту.

Вот XML-файл:

 <androidx.coordinatorlayout.wid&et.CoordinatorLayout
android:id="@ id/main_layout"
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:layout_width="match_parent"
android:layout_hei&ht="match_parent"
tools:context="fra&ments.DailyListFra&ment"&&t;

<com.&oo&le.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_hei&ht="wrap_content"
    android:id="@ id/appbar_layout"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"&&t;

    <com.&oo&le.android.material.appbar.Collapsin&ToolbarLayout
        android:layout_width="match_parent"
        android:layout_hei&ht="wrap_content"
        app:layout_scrollFla&s="scroll|snap|exitUntilCollapsed"
        app:title="@strin&/sample"
        app:contentScrim="@color/accent_color1"&&t;

        <Pro&ressBar
            android:id="@ id/pro&ressBar2"
            style="?android:attr/pro&ressBarStyleHorizontal"
            android:layout_width="match_parent"
            android:layout_hei&ht="200dp"
            android:pro&ressTint="#BA0E0E" /&&t;

        <androidx.appcompat.wid&et.Toolbar
            android:layout_width="match_parent"
            android:layout_hei&ht="?attr/actionBarSize"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"/&&t;

    </com.&oo&le.android.material.appbar.Collapsin&ToolbarLayout&&t;

</com.&oo&le.android.material.appbar.AppBarLayout&&t;

<com.&oo&le.android.material.floatin&actionbutton.Floatin&ActionButton
    android:id="@ id/fab_new_item"
    android:layout_width="wrap_content"
    android:layout_hei&ht="wrap_content"
    android:layout_mar&inEnd="24dp"
    android:layout_mar&inBottom="24dp"
    android:src="@drawable/ic_add_black_24dp"
    android:visibility="visible"
    app:fabSize="normal"
    app:layout_anchor="@id/recyclerview_list"
    app:layout_anchorGravity="bottom|ri&ht|end"/&&t;

<androidx.recyclerview.wid&et.RecyclerView
    android:id="@ id/recyclerview_list"
    android:layout_width="match_parent"
    android:layout_hei&ht="wrap_content"
    android:alwaysDrawnWithCache="false"
    android:back&round="@color/colorBack&round"
    android:visibility="visible"
    app:layout_behavior="@strin&/appbar_scrollin&_view_behavior"
    tools:listitem="@layout/recyclerview_layout_list"&&t;

</androidx.recyclerview.wid&et.RecyclerView&&t;

</androidx.coordinatorlayout.wid&et.CoordinatorLayout&&t;
  

Комментарии:

1. Если вы хотите, чтобы он всегда был внизу, почему вы привязали его к recyclerview? Удаление привязки должно сработать. Пожалуйста, добавьте больше деталей, если это требуется для любого варианта использования.

2. Заменить app:layout_anchor="@id/recyclerview_list" app:layout_anchorGravity="bottom|ri&ht|end" на android:layout_&ravity="bottom|end"

Ответ №1:

Заменить

 <com.&oo&le.android.material.floatin&actionbutton.Floatin&ActionButton
    app:layout_anchor="@id/recyclerview_list" 
    app:layout_anchorGravity="bottom|ri&ht|end"
  

с

 <com.&oo&le.android.material.floatin&actionbutton.Floatin&ActionButton
    android:layout_&ravity="bottom|end"