2015-06-03 3 views
13

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

enter image description here

Это соответствующий макет 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))); 

ответ

20

Override по умолчанию elevation из FAB, добавив:

android:elevation="0dp" 

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

+3

Это не работает для меня. – tounaobun

+3

setElevation доступен на уровне API минимум 21, как он может работать ниже LOLLIPOP? – tounaobun

+0

Вы можете просто придерживаться старого подхода к созданию своего собственного ImageButton на pre-lollipop. Как вы это делали до того, как они представили FAB –

7

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

app:elevation="0dp" 
+0

Спасибо. ваш подход работал для меня. – viper

+0

Правильный ответ! –

2

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

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

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

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

см

.../app/build.gradle 
    minSdkVersion 18 << less than 21 so req support libraries 
    targetSdkVersion 25 
2

Добавить это

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"/> 
0

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

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

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

enter image description here

Перед изменением он выглядел следующим образом:

enter image description here

Смежные вопросы