2016-06-13 41 views
5

Chcę, aby mój FloatingActionButton był znacznie większy z niestandardową szerokością i wysokością. Dowiaduję się, że jest to możliwe tylko wtedy, gdy dodam to jako dziecko w FrameLayout lub w CoordinatorLayout. Na Lollipop i Marshmallow wygląda dobrze. Ale na pre-Lollipop cień z FloatingActionButton jest bardzo dziwny. Czy to błąd z Androida, czy zrobiłem coś nie tak?Cień FloatingActionButton na 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> 

Próbowałem również dodać i app:borderWidth="0dp", ale bez powodzenia.

Jak to wygląda w KitKat:

Kitkat

+0

co o używaniu szerokość i wysokość układu jako 'wrap_content' –

Odpowiedz

2

przycisk Fab jest dostępny w dwóch standardowych wymiarach. Normalny (56dp), Mini (40dp)

Ale można zastąpić te wartości, dodając następujący kod w pliku dimens.xml (poniżej wartości).

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

wierzę, że jest to spowodowane przez te dwie linie:

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

Spróbuj ustawić je na adres:

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

Następnie dodaj:

app:fabSize="normal" 

więc ostateczna xml będą:

<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

Tak , ale teraz przycisk nie jest tak duży, jak chcę, aby być –

+0

Istnieje kilka sposobów na zmianę rozmiaru fabs, ale zalecane jest użycie podanych rozmiarów, nawet gdy próbuje się zwiększyć lub zmniejszyć przycisk (np. auto lub mini). Oto niektóre miejsca, w których można znaleźć odpowiedź na temat zmiany rozmiaru: http://stackoverflow.com/questions/32882742/android-how-to-change- size-appfabsize-normal-for-floating -action-button https://github.com/mikepenz/Android-Iconics/issues/143 Po prostu umieściłem swoją fabułę w FrameLayout i osobiście zmieniłem rozmiar ramki FrameLayout. – Genjab

+0

Spróbuję. Problem polega jednak na tym, że stworzyłem niestandardowy przycisk fab, który może uzyskać tekst, a rozwiązania, które dostarczają, dotyczą tylko ikon. Wiem, że to nie jest wydajne (rozmiar i tekst na przycisku wentylatora), ale chciałem tylko uniknąć rysowania. –

0

Należy ustawić

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

i fabSize na mini (40dp) lub normalny (56dp). Jeśli chcesz mieć inny rozmiar przycisku fab, przeskaluj przycisk.
E.g. jeśli chcesz rozmiar przycisku 48DP należy dodać

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

Także jeśli chcesz zachować rozmiar obrazu ustawiony android: scaleType = „center”