0

J'essaie d'afficher un bouton en dessous de la barre d'application lorsque le contenu (fragment_container) défile dans un CoordinatorLayout. Cela fonctionne en quelque sorte, mais je veux que le bouton s'affiche juste en dessous du appbar/toolbar, au lieu de développer la hauteur de l'appbar lors de l'affichage. Il étend actuellement l'appbar, car il est imbriqué dans celui-ci. J'ai essayé des combinaisons avec un RelativeLayout sans n'importe quelle chance. Comment puis-je le "détacher" du appbar/toolbar et quand même le faire apparaître ci-dessous, quand le contenu défile?Afficher et masquer le bouton ci-dessous appbar ou barre d'outils lors du défilement

Sur l'image ci-dessous, le vert indique l'appbar, le toolbar violet et rouge le bouton que je veux montrer à l'extérieur (directement au-dessous) les dispositions appbar/toolbar. Le fond blanc montre une vue de reclassement dans le fragment_container.

Current layout

La mise en page utilisée pour obtenir les résultats dans l'image ci-dessus:

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/coordinator"> 

    <android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar"> 

     <Toolbar 
      android:id="@+id/toolbar" 
      app:layout_scrollFlags="scroll|enterAlways"/> 

     <Button 
      android:id="@+id/scrollToTop" 
      app:layout_scrollFlags="scroll|enterAlways" 
      android:layout_marginTop="10dp" /> 

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

    <FrameLayout 
    android:id="@+id/fragment_container" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

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

EDIT:

Voir l'image ci-dessous pour le résultat que je suis après. Lorsque vous faites défiler le contenu dans le CoordinatorLayout je veux que le bouton apparaisse. Défilement vers le haut (glisser vers le haut) devrait enlever le bouton.

Desired layout

Répondre

1
CoordinatorLayout coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorLayout); 
Snackbar snackbar = Snackbar.make(coordinatorLayout, "Text", Snackbar.LENGTH_LONG); View view = snackbar.getView(); 
CoordinatorLayout.LayoutParams params =(CoordinatorLayout.LayoutParams)view.getLayoutParams();  
params.gravity = Gravity.TOP; 
view.setLayoutParams(params); snackbar.show(); 
+1

pas ce que je veux. Votre exemple montre un SnackBar tout en haut du CoordinatorLayout. Je veux montrer une vue au-dessous de l'appbar et la faire apparaître et disparaître quand le CoordinatorLayout bouge. Il doit être "en dehors" et en dessous de AppBarLayout dans le CoordinatorLayout. – thilemann