2015-10-03 14 views
7

Jestem nowy w materialnym aspekcie projektowania Androida. Więc proszę, weź mnie ze sobą. Próbowałem implementować FAB dla mojej aktywności domowej, a następnie zaimplementowałem snackbar. Naturalnie nadszedł mój FAB. Badałem na CoordinatorLayout i co mnie dręczy to, która z nich jest lepszą praktyką korzystania z CoordinatorLayout?android: Która praktyka jest lepsza do korzystania z CoordinatorLayout

Na przykład tutaj jest xml mojej aktywności.

<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> 

Obserwowałem, jak inni dodawali CoordinatorLayout w ten sposób.

<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> 

Moje pytanie brzmi, możemy użyć <android.support.design.widget.CoordinatorLayout> jako korzeń wszystkich elementów. Całkowite ominięcie lub usunięcie <RelativeLayout>.

Więc xml staje się taki.

<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> 

i <RelativeLayout> został całkowicie usunięty. Więc zamiast używać </android.support.design.widget.CoordinatorLayout> tylko dla FAB, używamy go do całej aktywności. Ponieważ CoordinatorLayout koncentruje się na koordynowaniu widoków podrzędnych, czy nie jest lepiej, gdyby wszystkie elementy działały w koordynacji ze sobą? Jakie są zalety i wady robienia tego w dowolny sposób?

+3

Sprawdź to: https://lab.getbase.com/introduction-to-coordinator-layout-on-android/ LUB https://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout –

+0

@HareshChhelana Po przeczytaniu tych linków uzyskałem lepsze zrozumienie. Dzięki za pomoc. –

+0

Cieszę się, że mogę Ci pomóc –

Odpowiedz

3

CoordinatorLayout jest stosunkowo nowy i rozwiązuje wiele problemów z FloatingActionButton i NavDrawer. Więc jeśli musisz mieć FAB lub NavDrawer, zdecydowanie polecam od teraz użycie CoordinatorLayout jako układu najwyższego poziomu (twój ostatni fragment kodu), a wewnątrz możesz mieć RelativeLayout lub LinearLayout dla dalszego udoskonalenia.

+0

Działa również z NestedScrollView i AppBarLayout –

Powiązane problemy