2015-06-03 33 views
13

Próbuję zastąpić trzecią stronę FloatingActionButton z the native one, która jest zapakowana w bibliotece com.android.support:design:22.2.0. Domyślny wygląd ma ciemny cień wokół obrazu, Jak mogę się go pozbyć? Wiem, że ten pierwszy zapewnia metodę setShadow(), ale po prostu nie mogę znaleźć tej drugiej.Jak usunąć cień otaczający FloatingActionButton?

enter image description here

To jest powiązany układ 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" /> 

I mam ustawić kolor tła na żółty.

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

Odpowiedz

20

zastąpić domyślny elevation Fab przez dodanie:

android:elevation="0dp" 

Albo w wywołaniu kodu View.setElevation(float)

+3

To nie działa dla mnie. – tounaobun

+3

setElevation jest dostępny na minimalnym poziomie API 21, jak to działa poniżej LOLLIPOP? – tounaobun

+0

Można po prostu trzymać się starego podejścia do tworzenia własnego ImageButton na pre-Lollipop. Tak jak przed wprowadzeniem FAB –

7

przesłonić elewacja domyślna FAB dodając następujący:

app:elevation="0dp" 
+0

Dziękuję. Twoje podejście zadziałało dla mnie. – viper

+0

To odpowiednia odpowiedź !! –

2

Jeśli korzystasz z bibliotek wsparcia - najnowszego systemu Android Korzystaj z szablonów Studio. Sprawdź importu

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

else if youre tylko wspieranie nowsze wersje SDK

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

zobaczyć

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

Dodaj ten

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

To będzie jak:

<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

Wypróbowałem wszystkie powyższe sugestie i nic nie zadziałało dla API 23 i wyższych. Ja skończyło się z tym, który został całkowicie usunięty w cień:

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

poniżej jest jak mój przycisk wygląda teraz:

enter image description here

przed zmianą wyglądało to następująco:

enter image description here