Quando faccio scorrere il mio RecycleView
ToolBar
nascondi o mostri (con animazione). Nascondi/Mostra barra degli strumenti a livello di programmazione su CoordinatorLayout
Come posso restituire ToolBar
indietro programmaticamente?
Quando faccio scorrere il mio RecycleView
ToolBar
nascondi o mostri (con animazione). Nascondi/Mostra barra degli strumenti a livello di programmazione su CoordinatorLayout
Come posso restituire ToolBar
indietro programmaticamente?
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!
È 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();
@ 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
ciao fratello !! aggiornata la risposta !! – johnrao07
@ johnarao07 aa, non funziona (( – Artem
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
risposta sorprendente, tutto lavoro, grazie !!! – Artem