#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. В итоге проблема заключалась не в этом линейном макете, а в представлении, содержащем его… но ваше предложение направило меня на правильный путь!