android - example - Cuando uso el CoordinatorLayout mi ScrollView tiene un tamaño incorrecto
coordinatorlayout example (2)
NestedScrollView es como ScrollView, pero admite actuar tanto como un elemento principal desplazable anidado como secundario en versiones nuevas y antiguas de Android. El desplazamiento anidado está habilitado por defecto.
Puede usar un NestedScrollView dentro de un ScrollView padre. NestedScrollView se utiliza cuando hay una necesidad de una vista de desplazamiento dentro de otra vista de desplazamiento. Aquí es donde es útil, cuando el sistema necesita decidir qué vista desplazarse.
Aquí hay un ejemplo de NestedScrollView con CoordinatorLayout:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<!-- Your scrolling content -->
</android.support.v4.widget.NestedScrollView>
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent">
<android.support.v7.widget.Toolbar
...
app:layout_scrollFlags="scroll|enterAlways"/>
<android.support.design.widget.TabLayout
...
app:layout_scrollFlags="scroll|enterAlways"/>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
Estoy usando un ScrollView en un diseño, y estoy tratando de usar el nuevo CoordinatorLayout
de la biblioteca de soporte de diseño .
Mi archivo de diseño se ve así:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
...
</LinearLayout>
</ScrollView>
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar ... />
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
Al probar esto, la vista de desplazamiento solo ocupa parte de la pantalla. ¿Qué salió mal?
El ScrollView estándar solo está destinado a ser utilizado como padre. Debe cambiar ScrollView a android.support.v4.widget.NestedScrollView
.
Se puede ver un ejemplo en la documentación de referencia para AppBarLayout
.