android listview android-appbarlayout

Android AppBarLayout se superpone a la vista de lista



listview android-appbarlayout (2)

Simple añadir

app:layout_behavior="@string/appbar_scrolling_view_behavior"

a su ListView

Estoy escribiendo una aplicación simple para jugar con ContentProvider, tengo un db, un ContentProvider, una actividad principal, una clase que reenvía comandos al ContentProvider usando ContentResolver. En la interfaz gráfica de usuario solo quiero mostrar todos los elementos almacenados en la db. Creé este proyecto desde cero y al crear la Actividad, el diseño principal tenía un CoordinatorLayout, con un AppBarLayout, y eso está bien, creé un ListView y todo funciona, excepto que el AppBarLayout se superpone al ListView, debajo del primer elemento del listview Está escondido por el AppBarLayout.

Intenté usar android:layout_below para mi ListView pero no funciona, si uso android:layout_marginTop entonces mi ListView está debajo de AppBarLayout pero no encuentro esta solución agradable.

¿No hay una manera fácil y limpia de tener ListView en el AppBarLayout?

debajo de mi activity_main layout:

<?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:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/holo_light_background" android:fitsSystemWindows="true" tools:context=".MainActivity"> <android.support.design.widget.AppBarLayout android:id="@+id/bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:theme="@style/AppTheme.AppBarOverlay" app:popupTheme="@style/AppTheme.PopupOverlay" /> </android.support.design.widget.AppBarLayout> <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/bar"/> <android.support.design.widget.FloatingActionButton ...> <android.support.design.widget.FloatingActionButton ...> </android.support.design.widget.CoordinatorLayout>


una forma alternativa es usar RecyclerView lugar de ListView, funcionará seguro ........

O

utilizar:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { listView.setNestedScrollingEnabled(true); }

Obviamente solo funcionará en Lollipop.