Werkbalk programmatisch verbergen/weergeven op CoordinatorLayout

Als ik scroll door mijn RecycleViewToolbarverberg of toon (met animatie).
voer hier de afbeeldingsbeschrijving in

Hoe kan ik Toolbarprogrammatisch terugzetten?


Antwoord 1, autoriteit 100%

Als uw werkbalk zich in een AppBarLayout bevindt die zich waarschijnlijk in uw CoordinatorLayout bevindt, zou zoiets als dit moeten werken.

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

Of om het samen te vouwen

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

Hier is de definitie

setExpanded(boolean expanded, boolean animate)

Houd er rekening mee dat deze methode beschikbaar is vanaf v23 van de ondersteuningsbibliotheek, hier zijn enkele documentatieter referentie, het belangrijkste om op te merken is “Net als bij het scrollen van AppBarLayout, vertrouwt deze methode erop dat deze lay-out een direct kind is van een CoordinatorLayout.” Ik hoop dat dit helpt !


Antwoord 2, autoriteit 9%

Is dat wat je zoekt?

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: In-/uitschakelen werkbalk programmatisch scrollen bij gebruik van ontwerpondersteuningsbibliotheek

Om de Toolbar te verbergen, kunt u zoiets als dit doen:

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

Als je het nog een keer wilt laten zien, bel je:

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

Antwoord 3, autoriteit 3%

Mijn probleem leek erg op @Artem. Ik heb veel oplossingen geprobeerd, maar geen enkele werkte voor mij. Het antwoord van @Jraco11 is correct als je AppBarLayoutgebruikt. @johnrao07 werkte niet voor mij. Maar ik vond een perfecte oplossing voor dit probleem toen we Toolbargebruiken.

Werkbalk programmatisch verbergen

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

Toolbar programmatisch weergeven

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

Verwijs naar origineel antwoord (antwoord door @Android HHT):-programmatisch-toon-toolbar-na-verborgen-door-scrolling-android-design-library

Other episodes