android - library - coordinatorlayout style
ListView no se expande dentro de NestedScrollView (10)
Debajo del código funcionó para mí:
ViewCompat.setNestedScrollingEnabled(listView, true);
Tu ListView debería estar dentro de NestedScrollView
Estoy utilizando CoordinatorLayout en mi página de actividades. En eso hay ListView debajo de la barra de la aplicación. Pero no funciona cuando uso ListView lugar de NestedScrollView . Y si pongo ListView dentro de NestedScrollView , ListView no se expande
Descubrí que esta solución de Prokash Sarkar funcionaba perfectamente para expandir el contenido de un ListView, de modo que se pudiera desplazar correctamente dentro de un NestedScrollView.
No se puede desplazar ListView en su versión principal, NestedScrollView - Android
Espero que esto ayude a otros que buscan NestedScrollView y ListView ...
No puede desplazar la vista de lista dentro de una vista de desplazamiento anidada.Utilizar la vista Recycler con vista de desplazamiento anidada
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorAccent"
android:orientation="horizontal">
<de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/profile_image"
android:layout_width="76dp"
android:layout_height="76dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginLeft="24dp"
android:layout_marginStart="24dp"
android:src="@drawable/profile"
app:border_color="#FF000000" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@+id/profile_image"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="IRFAN QURESHI"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="[email protected]" />
</LinearLayout>
<ImageView
android:layout_marginLeft="50dp"
android:layout_gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_delete_black" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@color/colorPrimary"
android:gravity="center_horizontal"
android:padding="30dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@drawable/login_email_bg_round_rect_shape"
android:gravity="center_horizontal"
android:padding="10dp"
android:text="POST A QUERY" />
</LinearLayout>
<!--<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>-->
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical" />
<RelativeLayout
android:background="@color/colorAccent"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:padding="8dp"
android:gravity="center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SIGN OUT" />
<ImageView
android:paddingTop="5dp"
android:layout_marginRight="40dp"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_delete_black" />
</RelativeLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.v4.widget.NestedScrollView>
Para que CoordinatorLayout funcione correctamente, necesita que el niño desplazable implemente NestedScrollingChild . Tales clases son NestedScrollView y RecyclerView .
Para decirlo brevemente, solo usa un RecyclerView para tu contenido de desplazamiento y funcionará correctamente :)
PD: Como nota al margen, no veo una razón por la que ListView un ListView más. Sé que es un hábito y es más fácil de configurar (porque lo ha hecho muchas veces), pero usar RecyclerView es la manera recomendada de todos modos.
Simplemente agregue la etiqueta android: nestedScrollingEnabled = "true" dentro de su NestedScrollView.
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none"
android:nestedScrollingEnabled="true">
<ListView
android:id="@+id/list_myContent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical">
</ListView>
Simplemente ponga android:fillViewport="true" dentro de usted Etiqueta NestedScrollView
Tu lista se desplazará. Espero ayuda.
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:nestedScrollingEnabled="true">
</ListView>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
en Lollipop en adelante puedes usar
setNestedScrollingEnabled(true);
en su ListView / GridView / ScrollableView. De la documentación
Habilitar o deshabilitar el desplazamiento anidado para esta vista
si necesita compatibilidad con versiones anteriores del sistema operativo, tendrá que usar RecyclerView . Puedes leer más here
Editar. ViewCompat tiene el método estático setNestedScrollingEnabled(View, boolean) . P.ej.
ViewCompat.setNestedScrollingEnabled(listView, true)
gracias a @Dogcat por señalarlo
esto es lo que funcionó para mí.
establece android:fillViewport="true" en el NestedScrollView
agregue un elemento de diseño como NestedScrollView a NestedScrollView . En mi caso LinearLayout y luego establezco android:nestedScrollingEnabled="true" en ListView Make ListView un hijo de LinearLayout
Bueno para ir
puede solucionarlo cuando agrega addtribute android:fillViewport="true" en android.support.v4.widget.NestedScrollView :). Este es mi código
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:fillViewport="true"
>
<ListView
android:id="@+id/list_myContent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
>
</ListView>
</android.support.v4.widget.NestedScrollView>