2

Je suis à la recherche des meilleures pratiques en matière de la configuration suivante assez commun:Utilisation de l'activité avec tiroir, barre d'outils de défilement, des onglets et des fragments différents

Ce que je fais actuellement est:

Mon principal L'activité a un tiroir de navigation et une barre d'outils. Lorsque vous cliquez sur l'un des éléments de la liste dans le tiroir, un fragment est chargé sous la barre d'outils. Certains fragments ont leurs propres onglets à l'aide de viewpager ect.

Je voudrais faire usage des fonctionnalités matérielles comme cacher la barre d'outils tout en faisant défiler ect. Ce n'est pas un problème pour le faire. Mais il y a un problème lorsque seulement certains de vos fragments aimeraient utiliser la barre d'outils déroulante. L'utilisation d'un Scrollview normal résout le problème si vous pouvez ajouter une marge supplémentaire en bas, mais une fois que vous avez un clavier, il gâchera car le défilement est incorrect. Utiliser un nestedscrollview fonctionne mais fait défiler la barre d'outils. Alors, comment puis-je éviter la barre d'outils de défilement lorsque mon activité détient la barre d'outils et certains fragments que le défilement devrait utiliser et certains pas?

La conception architecturale est-elle fausse? Une autre chose que je pensais être d'avoir les différentes barres d'outils à l'intérieur de chaque fragment ... mais ils doivent partager le même tiroir de navigation, donc vous devez créer et ajouter le ToggleButton à chaque fois? Est-ce la bonne approche? Devrais-je suivre ce chemin? Je ne suis pas convaincu et je voudrais avoir l'opinion de quelqu'un de plus expérimenté que moi. Quelle est la meilleure solution dans ce cas.

Appréciez votre aide! Vive

EDIT: Activité principale

<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true"> 


<android.support.design.widget.CoordinatorLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/fragment_container_first" 

    > 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appBar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     > 


     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?android:attr/actionBarSize" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> 

     </android.support.v7.widget.Toolbar> 


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


    <LinearLayout 
     android:id="@+id/owner_main_container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@+id/appBar" 
     android:orientation="horizontal" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab_add" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@drawable/addicon" 
     app:fabSize="normal" 
     app:layout_anchor="@id/owner_main_container" 
     app:layout_anchorGravity="bottom|right|end" 
     app:layout_behavior="xxx.Classes.Misc.ScrollAwareFABBehavior" 
     /> 

</android.support.design.widget.CoordinatorLayout> 
<!-- The navigation drawer --> 
<android.support.design.widget.NavigationView 
    android:id="@+id/navigation_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    app:menu="@menu/drawerhost" /> 

+0

pouvez-vous s'il vous plaît ajouter votre code. –

+0

J'ai ajouté mon code de disposition d'activité – Patric

+0

Y at-il un comportement à définir sur mon nestedscrollview pour éviter de faire défiler la barre d'outils? quelque chose à utiliser à la place de l'appbar_scrolling_view_behaviour. juste besoin d'un nestedscrollview qui ne fait pas défiler ma barre d'outils – Patric

Répondre

1

J'utilise aussi le tiroir de navigation et la barre d'outils s'il vous plaît projet importer this link et essayer de comprendre comment utiliser le tiroir de la navigation et la barre d'outils à l'aide fragment

+0

merci pour le lien. Je vais y jeter un coup d'oeil - et ensuite revenir à – Patric

+0

votre projet ne couvre pas mon cas d'utilisation ... il n'y a pas de barre d'outils de défilement et le tiroir ne change pas de fragment (il change d'onglet) – Patric