Ho una singola app Android per attività con molti frammenti. Quando visualizzo una schermata di elenco, desidero utilizzare lo Toolbar
con la proprietà, app:layout_scrollFlags="scroll|enterAlways"
. E nei frammenti di dettaglio voglio usare lo CollapsingToolbarLayout
con un'immagine al suo interno. Poiché si tratta di una singola app di attività, ne ho solo uno Toolbar
. È possibile modificare il layout in modo programmatico per soddisfare entrambi i casi?Modifica barra degli strumenti e CollapsingToolbarLayout per scorrere i flag a livello di programmazione
7
A
risposta
9
Sì. Diciamo che stai andando dal frammento CollapsingToolbarLayout alla barra degli strumenti.
si comprime il vostro
AppBarLayout
utilizzandoAppBarLayout.setExpanded(false)
;È possibile modificare i flag di scorrimento in base alle proprie esigenze.
AppBarLayout.LayoutParams p = (AppBarLayout.LayoutParams) toolbar.getLayoutParams(); p.setScrollFlags(...); toolbar.setLayoutParams(p);
Lo stesso vale per il CollapsingToolbarLayout se necessario. Credo che dovrebbe essere qualcosa di simile:
collapsingToolbarParams.setScrollFlags(0); //no flags for ctl toolbarParams.setScrollFlags(SCROLL_FLAG_SCROLL | SCROLL_FLAG_ENTER_ALWAYS); //new flags for toolbar
Ho anche avuto questo problema. Sembra che ho dimenticato di chiamare il metodo 'setLayoutParams()'. Grazie per la risposta! – Mauker
setScrollFlags (0) funziona bene ma quando provo a impostarlo su questo: params.setScrollFlags (AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS | AppBarLayout.LayoutParams.SCROLL_FLAG_SNAP); // cancella tutti i flag di scorrimento toolbar.setLayoutParams (parametri); non funziona .. – iBobb