Возможно ли иметь более двух плавающих кнопок действий?

#android #android-layout #floating-action-button

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

Вопрос:

Я борюсь с чем-то, что должно быть довольно простым, и теперь я не знаю, является ли это каким-то недокументированным ограничением элемента FAB. У меня есть три идентичных элемента управления на одном экране внутри горизонтального LinearLayout , но на третьем не отображается его значок.

введите описание изображения здесь

Вот код для этого:

     <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_centerInParent="true">

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@ id/gallery_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/dialog_btn_spacing"
            android:layout_marginEnd="@dimen/dialog_btn_spacing"
            android:src="@drawable/ic_photo_camera"
            app:backgroundTint="#FF5252"
            app:fabCustomSize="80dp" />

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@ id/camera_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/dialog_btn_spacing"
            android:layout_marginEnd="@dimen/dialog_btn_spacing"
            android:src="@drawable/ic_photo_camera"
            app:backgroundTint="#4CAF50"
            app:fabCustomSize="80dp" />

        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@ id/text_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/dialog_btn_spacing"
            android:layout_marginEnd="@dimen/dialog_btn_spacing"
            android:src="@drawable/ic_photo_camera"
            app:backgroundTint="#21BFF3"
            app:fabCustomSize="80dp" />

    </LinearLayout>
  

Более того, если я добавлю еще одну к LinearLayout , результат будет точно таким же, четвертая вообще не появится. Есть ли какие-то ограничения на количество отображаемых объектов? Я никоим образом не манипулирую фабриками с помощью кода, добавляя только прослушиватель кликов к каждому из них. Значки являются векторными изображениями, импортируемыми непосредственно из библиотеки значков материалов (и ради этого примера я поместил один и тот же для трех из них).

Я не уверен, в чем может быть конкретная проблема, но это вызывает у меня головную боль…

Ответ №1:

Попробуйте также установить для width и height значение 80dp

 <LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_centerInParent="true">

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@ id/gallery_button"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_marginStart="@dimen/dialog_btn_spacing"
        android:layout_marginEnd="@dimen/dialog_btn_spacing"
        android:src="@drawable/ic_photo_camera"
        app:backgroundTint="#FF5252"
        app:fabCustomSize="80dp" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@ id/camera_button"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_marginStart="@dimen/dialog_btn_spacing"
        android:layout_marginEnd="@dimen/dialog_btn_spacing"
        android:src="@drawable/ic_photo_camera"
        app:backgroundTint="#4CAF50"
        app:fabCustomSize="80dp" />

    <com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@ id/text_button"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_marginStart="@dimen/dialog_btn_spacing"
        android:layout_marginEnd="@dimen/dialog_btn_spacing"
        android:src="@drawable/ic_photo_camera"
        app:backgroundTint="#21BFF3"
        app:fabCustomSize="80dp" />

</LinearLayout>
  

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

1. В итоге проблема заключалась не в этом линейном макете, а в представлении, содержащем его… но ваше предложение направило меня на правильный путь!