Mam jedną aplikację Android Activity z dużą ilością fragmentów. Kiedy wyświetlam ekran listy, chcę użyć wartości Toolbar
z właściwością, app:layout_scrollFlags="scroll|enterAlways"
. A w fragmentach szczegółów chcę użyć CollapsingToolbarLayout
z obrazem w nim. Ponieważ jest to pojedyncza aplikacja Activity, mam tylko jedną Toolbar
. Czy programowo można modyfikować mój układ, aby pasował do obu przypadków?Zmiana paska narzędzi i zwijanie paska narzędzi paska narzędzi Programowo przewijanie flag
7
A
Odpowiedz
9
Tak. Powiedzmy, że przechodzisz od fragmentu CollapsingToolbarLayout do paska Toolbar.
zwinąć swój
AppBarLayout
użyciuAppBarLayout.setExpanded(false)
;Zmieniasz flagi przewijania zgodnie ze swoimi potrzebami.
AppBarLayout.LayoutParams p = (AppBarLayout.LayoutParams) toolbar.getLayoutParams(); p.setScrollFlags(...); toolbar.setLayoutParams(p);
To samo dotyczy opcji CollapsingToolbarLayout, jeśli jest to konieczne. Chyba powinno to być coś podobnego:
collapsingToolbarParams.setScrollFlags(0); //no flags for ctl toolbarParams.setScrollFlags(SCROLL_FLAG_SCROLL | SCROLL_FLAG_ENTER_ALWAYS); //new flags for toolbar
miałem również ten problem. Wydaje się, że zapomniałem zadzwonić do metody 'setLayoutParams()'. Dziękuję za odpowiedź! – Mauker
setScrollFlags (0) działa poprawnie, ale gdy próbuję ustawić to na: params.setScrollFlags (AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS | AppBarLayout.LayoutParams.SCROLL_FLAG_SNAP); // wyczyść wszystkie flagi przewijania toolbar.setLayoutParams (params); nie działa. – iBobb