2015-10-03 12 views
7

Tôi mới đến khía cạnh thiết kế material design của android. Vì vậy, hãy chịu với tôi. Tôi đã thử triển khai FAB cho hoạt động tại nhà của mình, và sau đó triển khai thanh snack. Đương nhiên, nó đến trên FAB của tôi. Tôi đã nghiên cứu về CoordinatorLayout và điều gì làm phiền tôi là cách nào là một thực hành tốt hơn cho việc sử dụng CoordinatorLayout?android: Thực tiễn nào tốt hơn cho việc sử dụng CoordinatorLayout

Ví dụ: đây là xml hoạt động của tôi.

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/primary_color"></android.support.v7.widget.Toolbar> 


     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/searchfab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentBottom="true" 
      android:layout_marginBottom="20dp" 
      android:layout_marginRight="20dp" 
      android:src="@drawable/ic_add_black_24dp" 
      app:fabSize="normal"> 

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

</RelativeLayout> 

Tôi đã xem những người khác thêm CoordinatorLayout như thế này.

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity"> 


    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/primary_color"></android.support.v7.widget.Toolbar> 

    <android.support.design.widget.CoordinatorLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/searchfab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginBottom="20dp" 
      android:layout_marginRight="20dp" 
      android:src="@drawable/ic_add_black_24dp" 
      app:fabSize="normal"> 

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

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

Câu hỏi của tôi là, chúng tôi có thể sử dụng <android.support.design.widget.CoordinatorLayout> làm gốc của tất cả các thành phần. Hoàn toàn bỏ qua hoặc xóa <RelativeLayout>.

Vì vậy, xml trở nên như thế này.

<android.support.design.widget.CoordinatorLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:context=".MainActivity"> 

     <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/primary_color"> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/searchfab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginBottom="20dp" 
      android:layout_marginRight="20dp" 
      android:src="@drawable/ic_add_black_24dp" 
      app:fabSize="normal"> 

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

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

<RelativeLayout> bị xóa hoàn toàn. Vì vậy, thay vì sử dụng </android.support.design.widget.CoordinatorLayout> chỉ dành cho FAB, chúng tôi sử dụng nó cho toàn bộ hoạt động. Vì CoordinatorLayout tập trung vào việc phối hợp làm việc với con cái, không phải là tốt hơn nếu tất cả các yếu tố làm việc phối hợp với nhau? Những lợi thế và bất lợi của việc làm theo cách nào?

+3

Kiểm tra điều này: https://lab.getbase.com/introduction-to-coordinator-layout-on-android/ HOẶC https://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout –

+0

@HareshChhelana Tôi hiểu rõ hơn sau khi đọc những liên kết đó. Cảm ơn đã giúp đỡ. –

+0

Rất vui được giúp bạn thân yêu –

Trả lời

3

CoordinatorLayout tương đối mới và giải quyết rất nhiều vấn đề với FloatingActionButton và NavDrawer. Vì vậy, nếu bạn phải có FAB hoặc NavDrawer, tôi chắc chắn sẽ khuyên bạn nên sử dụng CoordinatorLayout làm bố cục cấp cao nhất của bạn từ bây giờ (đoạn mã cuối cùng) và bên trong nó, bạn có thể có RelativeLayout hoặc LinearLayout để tinh chỉnh hơn.

+0

Cũng hoạt động với NestedScrollView và AppBarLayout –

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