recyclerview - searchview android studio
Ocultar/Mostrar la barra de herramientas mediante programaciĆ³n en CoordinatorLayout (3)
Mi problema fue muy similar al de @Artem. Probé muchas soluciones, pero ninguna de ellas me funcionó. La respuesta de @ Jraco11 es correcta cuando usa AppBarLayout
. @ johnrao07 no funcionó para mí. Pero encontré una solución perfecta para este problema cuando usamos la Toolbar
.
Para ocultar la barra de herramientas programáticamente
if (toolbar.getParent() instanceof AppBarLayout){
((AppBarLayout)toolbar.getParent()).setExpanded(false,true);
}
Para mostrar la barra de herramientas programáticamente
if (toolbar.getParent() instanceof AppBarLayout){
((AppBarLayout)toolbar.getParent()).setExpanded(true,true);
Consulte la respuesta original (respuesta de @Android HHT): - programmatically-show-toolbar-after-hidden-by-scrolling-android-design-library
Si su barra de herramientas está dentro de un AppBarLayout que probablemente esté dentro de su CoordinatorLayout, entonces algo como esto debería funcionar.
AppBarLayout appBarLayout = (AppBarLayout)findViewById(R.id.appBar);
appBarLayout.setExpanded(true, true);
O para colapsarlo
AppBarLayout appBarLayout = (AppBarLayout)findViewById(R.id.appBar);
appBarLayout.setExpanded(false, true);
Aquí está la definición
setExpanded(boolean expanded, boolean animate)
Tenga en cuenta que este método está disponible en v23 de la biblioteca de soporte, aquí hay algunos documentation para referencia, la clave es que " Al igual que con el desplazamiento de AppBarLayout, este método se basa en que este diseño es un elemento directo de un CoordinatorLayout. " Espero que esto ayuda!
¿Es eso lo que estás buscando?
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
Para ocultar la barra de herramientas, puede hacer algo como esto:
toolbar.animate().translationY(-toolbar.getBottom()).setInterpolator(new AccelerateInterpolator()).start();
Si quieres volver a mostrarlo, llama:
toolbar.animate().translationY(0).setInterpolator(new DecelerateInterpolator()).start();