2015-11-27 9 views

risposta

73

Se la barra degli strumenti si trova all'interno di un AppBarLayout che è probabilmente all'interno di CoordinatorLayout, qualcosa del genere dovrebbe funzionare.

AppBarLayout appBarLayout = (AppBarLayout)findViewById(R.id.appBar); 
      appBarLayout.setExpanded(true, true); 

O per comprimerla

AppBarLayout appBarLayout = (AppBarLayout)findViewById(R.id.appBar); 
      appBarLayout.setExpanded(false, true); 

Ecco la definizione

setExpanded(boolean expanded, boolean animate) 

Si precisa che per questo metodo è disponibile dal V23 della libreria di supporto, ecco alcune documentation per riferimento, la cosa fondamentale da notare è "" Come per lo scorrimento di AppBarLayout, questo metodo si basa sul fatto che questo layout è figlio diretto di un CoordinatorLayout. "Spero che questo aiuti!

+0

risposta sorprendente, tutto lavoro, grazie !!! – Artem

7

È quello che stai cercando?

Toolbar toolbar = findViewById(R.id.toolbar); // or however you need to do it for your code 
AppBarLayout.LayoutParams params = (AppBarLayout.LayoutParams) toolbar.getLayoutParams(); 
params.setScrollFlags(0); // clear all scroll flags 

link: How to enable/disable toolbar scrolling programmatically when using design support library

Per nascondere la barra degli strumenti tua può solo fare qualcosa di simile:

toolbar.animate().translationY(-toolbar.getBottom()).setInterpolator(new AccelerateInterpolator()).start(); 

Se si desidera mostrare di nuovo vi invito:

toolbar.animate().translationY(0).setInterpolator(new DecelerateInterpolator()).start(); 
+1

@ johnarao07 ciao uomo! Grazie per la risposta, ma non funziona per me. E questa soluzione disabilita il nascondere/mostrare per la barra degli strumenti. Voglio solo mostrare/nascondere senza disabilitazione – Artem

+0

ciao fratello !! aggiornata la risposta !! – johnrao07

+1

@ johnarao07 aa, non funziona (( – Artem

0

Il mio problema era molto simile a @Artem Ho provato molte correzioni ma nessuna ha funzionato per me. @ La risposta di Jraco11 è corretta quando si utilizza AppBarLayout. @ johnrao07 non ha funzionato per me. Ma ho trovato una soluzione perfetta per questo problema quando usiamo Toolbar.

Per nascondere Toolbar programatically

if (toolbar.getParent() instanceof AppBarLayout){ 
        ((AppBarLayout)toolbar.getParent()).setExpanded(false,true); 
       } 

Per mostrare Toolbar programatically

if (toolbar.getParent() instanceof AppBarLayout){ 
         ((AppBarLayout)toolbar.getParent()).setExpanded(true,true); 

consultare risposta originale (risposta da @Android HHT): - programmatically-show-toolbar-after-hidden-by-scrolling-android-design-library

Problemi correlati