Как удалить окружающую тень FloatingActionButton?

Я пытаюсь заменить сторонний FloatingActionButton на собственный, упакованный в библиотеку com.android.support:design:22.2.0. Внешний вид по умолчанию имеет темную тень вокруг изображения, как Я избавлюсь от него? Я знаю, что первый предоставляет метод setShadow(), но я просто не могу найти аналогичный из второго.

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

Это связанный макет XML:

<android.support.design.widget.FloatingActionButton
        android:id="@+id/alarm_front"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/btn_icon_alarm_notset" />

И я установил его цвет фона на желтый.

mAlarmBtn.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(R.color.floatButtonColor)));

person tounaobun    schedule 03.06.2015    source источник


Ответы (7)


Переопределите высоту FAB по умолчанию, добавив:

android:elevation="0dp"

Или в коде вызовите View.setElevation(float)

person BrentM    schedule 03.06.2015
comment
setElevation доступен на минимальном уровне API 21, как он может работать ниже LOLLIPOP? - person tounaobun; 03.06.2015
comment
Вы можете просто придерживаться старого подхода создания собственного ImageButton на предварительном леденце. Как вы делали до того, как они представили FAB - person Zsolt Boldizsár; 03.06.2015
comment
Другие разработчики сообщают о проблемах с тенями в новой поддержке FAB, хотя, как правило, тень не отображается, что является противоположной проблемой, но, возможно, связанной с этим проблемой. stackoverflow.com/questions/30532863/ - person BrentM; 03.06.2015
comment
Тогда я бы придерживался третьей стороны, пока не будет решения FAB библиотеки дизайна. Спасибо BrentM. - person tounaobun; 03.06.2015
comment
С официальным FAB вы можете использовать app:elevation="0dp", чтобы делать то, что хотите. Пробовал на Android 4.1.1, работает нормально. Я не знаю, есть ли еще решение для Java. - person Gaëtan; 01.07.2015
comment
@Gaëtan, ты должен превратить это в ответ, это действительно помогло мне. Благодарность - person Tosin Onikute; 22.11.2015
comment
используйте app:elevation="0dp" для совместимости - person Leonardo; 16.02.2016

Добавь это

android:elevation="0dp" app:elevation="0dp"

Это будет так:

 <android.support.design.widget.FloatingActionButton
        android:id="@+id/floatingActionButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_add"
        android:elevation="0dp"
        app:elevation="0dp"
        app:fabSize="normal"
        android:scaleType="fitCenter"/>
person Jean-Nicolas Defossé    schedule 30.11.2017
comment
Это ответ среди всех - person GvSharma; 04.11.2018

Переопределите высоту FAB по умолчанию, добавив следующее:

app:elevation="0dp"
person saurabh dhillon    schedule 10.04.2017

Сделать borderWidth равным 0

app:borderWidth="0dp"
person Sameer Khader    schedule 27.04.2019
comment
Перепробовал все вышеперечисленное, но тени остались ... Этот ответ сработал для меня! - person stefan; 21.12.2019

Если вы используете библиотеки поддержки - последние шаблоны Android Studio используют их. Проверьте импорт

import android.support.design.widget.FloatingActionButton;
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
//if using support app compat
fab.setCompatElevation(16.0f);

иначе, если вы поддерживаете только более новые версии SDK

fab.setElevation();
//call requires SDK 21

видеть

.../app/build.gradle
  minSdkVersion 18    << less than 21 so req support libraries
  targetSdkVersion 25
person brian.clear    schedule 12.05.2017

Перепробовал все приведенные выше предложения, и ничего не помогло для API 23 и выше. Я закончил с этим, который полностью удалил тень:

app:backgroundTint="@android:color/transparent"
app:borderWidth="0dp"

Ниже показано, как моя кнопка выглядит сейчас:

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

До замены это выглядело так:

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

person Oleg Gryb    schedule 02.02.2018

Это решение работает и для ExtendedFloatingActionButton:

style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
person StefanTo    schedule 02.03.2021