2015-10-03 10 views
7

Sono nuovo all'aspetto del design dei materiali di Android. Quindi, per favore abbiate pazienza con me. Ho provato a implementare il FAB per la mia attività a casa, quindi ho implementato lo snackbar. Naturalmente, è venuto sopra il mio FAB. Ho fatto delle ricerche su CoordinatorLayout e cosa mi dà fastidio è quale sia una pratica migliore per usare un CoordinatorLayout?android: quale pratica è meglio per l'uso di CoordinatorLayout

Ad esempio, ecco l'xml della mia attività.

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

Ho visto altre persone aggiungere CoordinatorLayout in questo modo.

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

La mia domanda è, possiamo usare <android.support.design.widget.CoordinatorLayout> come la radice di tutti gli elementi. Ignorando o rimuovendo completamente il <RelativeLayout>.

Quindi il xml diventa così.

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

e <RelativeLayout> completamente rimosso. Quindi, invece di usare </android.support.design.widget.CoordinatorLayout> solo per FAB, lo usiamo per l'intera attività. Poiché CoordinatorLayout si concentra sul fatto di coordinare le visioni dei bambini, non è forse meglio se tutti gli elementi interagiscono tra loro? Quali sono i vantaggi e gli svantaggi di farlo in entrambi i modi?

+3

Controlla questo: https://lab.getbase.com/introduction-to-coordinator-layout-on-android/ O https://guides.codepath.com/android/Handling-Scrolls-with-CoordinatorLayout –

+0

@HareshChhelana Ho una comprensione migliore dopo aver letto quei link. Grazie per l'aiuto. –

+0

Felice di aiutarti caro –

risposta

3

CoordinatorLayout è relativamente nuovo e risolve molti problemi con FloatingActionButton e NavDrawer. Quindi, se devi avere FAB o NavDrawer, ti consiglio di utilizzare CoordinatorLayout come layout di primo livello da ora in poi (il tuo ultimo frammento di codice) e al suo interno puoi avere RelativeLayout o LinearLayout per ulteriori perfezionamenti.

+0

Funziona anche con NestedScrollView e AppBarLayout –

Problemi correlati