2016-06-13 17 views
5

Tôi muốn làm cho FloatingActionButton lớn hơn nhiều với chiều rộng và chiều cao tùy chỉnh. Tôi phát hiện ra rằng điều này chỉ có thể xảy ra nếu tôi thêm đứa trẻ này làm con trong số FrameLayout hoặc trong số CoordinatorLayout. Trên Lollipop và Marshmallow nó có vẻ tốt. Nhưng trên Lollipop trước bóng tối từ FloatingActionButton là rất lạ. Có phải là một lỗi từ Android hoặc tôi đã làm điều gì sai?FloatingActionButton shadow trên 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> 

Tôi cũng đã cố gắng thêm và app:borderWidth="0dp" nhưng không có may mắn.

Đây là cách nó sẽ tìm trong Kitkat:

Kitkat

+0

gì về việc sử dụng chiều rộng và chiều cao của bố cục là 'wrap_content' –

Trả lời

2

nút Fab được phát hành theo hai chiều mặc định. Bình thường (56dp), Nhỏ (40dp)

Nhưng bạn có thể ghi đè giá trị này bằng cách thêm mã sau vào dimens.xml (dưới giá trị).

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

Tôi tin rằng điều này là do hai dòng sau:

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

Hãy thử đặt chúng vào:

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

Sau đó, thêm:

app:fabSize="normal" 

Vì vậy, xml thức sẽ là:

<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

Ừ , nhưng bây giờ nút không lớn như tôi muốn là –

+0

Có một vài cách để thay đổi kích thước của fabs nhưng bạn nên sử dụng kích thước được cung cấp ngay cả khi cố gắng tăng hoặc thu nhỏ nút (ví dụ như bình thường, tự động hoặc mini). Dưới đây là một số nơi bạn có thể tìm thấy câu trả lời để thay đổi kích thước: 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 Tôi chỉ đặt fab của mình vào FrameLayout và thay đổi kích thước của FrameLayout, cá nhân. – Genjab

+0

Tôi sẽ thử. Nhưng vấn đề là tôi đã thực hiện một nút fab tùy chỉnh có thể nhận được văn bản, các giải pháp mà họ cung cấp chỉ dành cho biểu tượng. Tôi biết rằng điều này là không hiệu quả (kích thước và văn bản trên nút fan), nhưng tôi chỉ muốn tránh các drawables. –

0

Bạn nên đặt

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

và fabSize trên mini (40dp) hoặc bình thường (56dp). Nếu bạn muốn kích thước khác nhau của nút fab, bạn nên mở rộng nút.
Ví dụ: nếu bạn muốn kích thước nút 48dp bạn nên thêm

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

Ngoài ra nếu bạn muốn giữ lại kích thước hình ảnh thiết android: scaleType = "center"

Các vấn đề liên quan