Android: CollapsingToolbarLayout y SearchView, texto superpuesto
Tengo poco problema con la superposición CollapsingToolbarLayout título con SearchView texto. Cuando CollapsingToolbarLayout se amplía, no hay ningún problema:
- CollapsingToolbarLayout no debe colapsar cuando RecyclerView está vacío
- Espacio adicional entre el título de la barra de herramientas Colapsing y el botón Inicio / Arriba
- ¿Cómo crear un diseño de barra de herramientas doblado?
- Deshabilitar desplazamiento vertical en CollapsingToolbarLayout / AppBarLayout
- Expanda el appbarlayout cuando se desplaza la vista de reciclaje / fling to top
Pero cuando se colapsa, el texto se superpone:
¿Como arreglarlo?
- ¿Cómo evitar el bloqueo de desplazamiento en sí mismo cuando se utiliza setNestedScrollingEnabled (false)?
- CollapsingToolBarLayout - barra de estado
- RecyclerView dentro de la disposición de NestedScrollView sin desplazamiento
- Cuando se ejecuta en Nougat, ¿por qué el título se corta cuando se utiliza un CollapsingToolbarLayout?
Intenté la respuesta por Tomas, pero tenía un problema que tan pronto como el usuario se desplaza, la appbar colapsa de nuevo y el problema vuelve a aparecer.
Así que vine con otra solución que es hacer el texto de título colapsado transparente cuando la búsqueda se expande . Esto funciona bien y no depende o cambia el estado de colapso / expansión de la appbar.
Simplemente esto:
if (searchViewExpanding) { collapsingToolbarLayout.setCollapsedTitleTextColor(Color.TRANSPARENT); } else { collapsingToolbarLayout.setCollapsedTitleTextColor(Color.WHITE); }
Por supuesto, necesitará manejar setOnActionExpandListener
de su elemento de menú de búsqueda para saber cuándo llamar a esto.
La respuesta ahora es simple, expanda CollapsingToolbarLayout cuando se hace clic en el botón de búsqueda. Gracias a Tuấn Trần Anh y este código:
coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator_layout); appBarLayout = (AppBarLayout) findViewById(R.id.appbar); CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams(); AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior(); behavior.setTopAndBottomOffset(0); behavior.onNestedPreScroll(coordinatorLayout, appBarLayout, null, 0, 1, new int[2]);
Más información está en este hilo .
EDITAR
Todavía no lo resuelvo, ellos han sufrido otro problema realted. Con cambiar el texto. El truco ahora es usar el ControllableAppLayout para saber cuándo la barra está colapsada o expandida, entonces sólo tienes que establecer y vacía el título setTitle ("")
Puede encontrar mi implementación aquí https://gist.github.com/skimarxall/863585dcd7abde8f4153
Problema: https://code.google.com/p/android/issues/detail?id=178138