Intereting Posts
Создать файл aar в Android Studio Как добавить панель инструментов в Android-приложение? Управление малиной Pi через USB-устройство Android Android: я хочу встряхнуть его Получать широковещательную передачу, когда SD-карта размонтирует андроид «Очистить данные пользователя» android Измените язык программно в Android Android: Как установить имя скомпилированного APK? Добавление нового сетевого носителя на Android Переключитесь на новую активность, вместо переключения фрагментов, когда щелкнуть элемент списка слайдов jfeinstein10 Как выполнить ручную проверку подлинности IPC Android ListView – прокручивается вверх по обновлению Espresso соответствует первому элементу, найденному, когда многие из них находятся в иерархии Как реализовать 3D Secure (подтвержденный Visa / MasterCard SecureCode) на родном мобильном приложении (например, IOS) Почему ImageView.setImageURI () работает в Android 2.2, но не 2.1?

Как добавить тень в FAB, предоставляемую библиотекой дизайна поддержки Android?

Название довольно объяснительно.

Следующий код не отображает тень ниже плавающей кнопки действия. Что можно сделать, чтобы сделать тень? Эта функция действительно не поддерживается даже в API 21+?

<android.support.design.widget.FloatingActionButton android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/ic_add" android:clickable="true" /> 

Примечание. Добавление android:elevation не добавляет тени в API 21.

Пример скриншота

Снимок экрана, взятый из примера dandar3: https://github.com/dandar3/android-support-design

Solutions Collecting From Web of "Как добавить тень в FAB, предоставляемую библиотекой дизайна поддержки Android?"

Просто установив app:borderWidth="0dp" разрешите эту проблему для меня.

Примечание. Не забудьте добавить xmlns:app="http://schemas.android.com/apk/res-auto" в свой корневой макет.

Эта проблема должна быть исправлена ​​в следующем выпуске библиотеки дизайна Android.

Для API 21+ вам нужно установить app:borderWidth="0dp" и app:elevation="[number]dp" . Устанавливая высоту, вы придаете размер тени, который вы хотите:

Пример значений параметра "высота"

Вот пример кода для API 21+:

 <android.support.design.widget.FloatingActionButton xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/locate_user_FAB" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/location_off" app:elevation="6dp" app:borderWidth="0dp" android:layout_above="@+id/take_taxi_FAB" app:backgroundTint="@color/colorAccentGrey"> 

Одна важная вещь, которую следует помнить для API ниже до 21 (Android 4), – это условия совместимости. FAB поместит поля вокруг вашей кнопки, чтобы нарисовать тень. Тогда вы должны сделать что-то подобное (я в настоящее время использую этот код и работает):

 <android.support.design.widget.FloatingActionButton xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/locate_user_FAB" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/location_off" app:elevation="6dp" app:borderWidth="0dp" android:layout_above="@+id/take_taxi_FAB" android:layout_alignParentRight="true" android:layout_marginRight="@dimen/map_FAB_marginRight" android:layout_marginBottom="@dimen/locate_user_FAB_marginBottom" app:backgroundTint="@color/colorAccentGrey"> 

Я предпочитаю ставить xmlns:app="http://schemas.android.com/apk/res-auto" в начале XML, но я там просто напомнил;]

Если это еще не работает для некоторых, существует значительная разница между:

 app:elevation="6dp" app:borderWidth="0dp" 

а также

 app:borderWidth="0dp" app:elevation="6dp" 

Кажется, что порядок по какой-то причине (первый заказ работает, второй – нет), и это из библиотеки поддержки 23.3.0

Проверьте манифест в проекте или библиотеках в теге приложения и удалите их

 android:hardwareAccelerated="false" android:largeHeap="true" 

Но если вам нужны эти параметры, тени и анимация преобразования не будут работать

У меня возникла такая же проблема, и я получил ее для работы, удалив этот тег из моего AndroidManifest.xml.

 android:hardwareAccelerated="false" 

Я сначала добавил его вместе с android:largeHeap="true" , потому что я думал, что мне это нужно для HeatMap, в котором показано большое количество точек, но потом я понял, что он может работать только с android:largeHeap="true" ,