2016-06-13 11 views
5

Desidero rendere il mio FloatingActionButton molto più grande con larghezza e altezza personalizzate. Scopro che ciò è possibile solo se aggiungo questo da bambino in o in CoordinatorLayout. Su Lollipop e Marshmallow sembra buono. Ma su pre-Lollipop l'ombra da FloatingActionButton è molto strana. È un bug di Android o ho fatto qualcosa di sbagliato?FloatingActionButton shadow su pre-lollipop

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/help_layout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true"> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/my_btn" 
     android:layout_width="150dp" 
     android:layout_height="150dp" 
     android:layout_gravity="center" 
     android:src="@mipmap/ic_launcher" /> 

</android.support.design.widget.CoordinatorLayout> 

Ho anche provato ad aggiungere e app:borderWidth="0dp" ma senza fortuna.

Questo è come appare in Kitkat:

Kitkat

+0

cosa sull'utilizzo di larghezza e l'altezza del layout 'wrap_content' –

risposta

2

pulsante Fab è disponibile in due dimensioni predefinite. Normale (56dp), Mini (40dp)

Ma è possibile ignorare questi valori con l'aggiunta di codice seguenti in dimens.xml (sotto i valori).

<dimen name="design_fab_size_normal">150dp</dimen> 
<dimen name="design_fab_size_mini">30dp</dimen> 
0

credo che questo è causato da queste due righe:

android:layout_width="150dp" 
android:layout_height="150dp" 

Provale impostazione:

android:layout_width="match_parent" 
android:layout_height="match_parent" 

Quindi aggiungere:

app:fabSize="normal" 

Così il xml finale sarà:

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/help_layout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true"> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/my_btn" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" 
     android:src="@mipmap/ic_launcher" 
     app:fabSize="normal"/> 

</android.support.design.widget.CoordinatorLayout> 
+0

Sì , ma ora il pulsante non è grande come voglio io –

+0

Ci sono un paio di modi per cambiare la dimensione dei fabs ma si consiglia di usare le dimensioni fornite anche quando si cerca di aumentare o ridurre il pulsante (cioè normale, auto o mini). Ecco alcuni punti in cui è possibile trovare la risposta alla modifica delle dimensioni: http://stackoverflow.com/questions/32882742/android-how-to-change-size-of-appfabsize-normal-for-floating -action-button https://github.com/mikepenz/Android-Iconics/issues/143 Ho appena messo il mio fab in un FrameLayout e modificato la dimensione del FrameLayout, personalmente. – Genjab

+0

Ci proverò. Ma il problema è che ho creato un pulsante fab personalizzato che può ottenere testo, le soluzioni che forniscono sono solo per icone. So che questo non è efficiente (la dimensione e il testo sul pulsante fan), ma volevo solo evitare i drawable. –

0

È necessario impostare

android:layout_width= "wrap_content" 
android:layout_height= "wrap_content" 

e fabSize su mini (40dp) o normale (56dp). Se si desidera una dimensione diversa del pulsante fab, è necessario ridimensionare il pulsante.
E.g. se volete il formato pulsante 48DP si dovrebbe aggiungere

app:fabSize="mini" 
android:scaleX=1.2 
android:scaleY=1.2 

Inoltre, se si desidera mantenere le dimensioni dell'immagine impostata android: scaleType = "center"