Cómo enrollar el diseño del coordinador en un LinearLayout?
Estoy intentando usar el CoordinatorLayout de la nueva Biblioteca de Diseño de Android dentro de otro diseño. El CoordinatorLayout contiene un RecyclerView. Lo que estoy tratando de hacer es colocar un LinearLayout simple debajo del CoordinatorLayout. Este diseño debe colocarse debajo del CoordinatorLayout. Esto es XML que estoy usando:
<LinearLayout 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:fitsSystemWindows="true" android:orientation="vertical"> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="fill_parent"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" /> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/conversation_recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="150dp" android:orientation="horizontal"> <EditText android:layout_width="fill_parent" android:layout_height="match_parent" /> <ImageButton android:layout_width="wrap_content" android:layout_height="match_parent" android:src="@drawable/ic_send_white_36dp" /> </LinearLayout> </LinearLayout>
Como puede ver, estoy intentando envolver el CoordinatorLayout dentro de otro LinearLayout. Sin embargo, en la pantalla la segunda parte del diseño ni siquiera renderiza.
- despliegue la vista de desplazamiento anidada para ampliar la vista de la imagen en su parte superior
- Espresso, el desplazamiento no funciona cuando NestedScrollView o RecyclerView está en CoordinatorLayout
- NestedScrolling con NestedScrollView, RecyclerView (Horizontal), dentro de un CoordinatorLayout
- Cómo mostrar los elementos colapsados en CoordinatorLayout mediante programación?
- ConstraintLayout vs Coordinator?
- Webview dentro de NestedScrollView causa problema de altura
- CollapsingToolbarDescargar y ocultar la barra de herramientas mientras se desplaza
- Diseño del coordinador con viewpager con recyclerview como adaptador
- Posición de la vista de héroe calculada erróneamente durante la transición de elementos compartidos
- Diseño lib - CoordinatorLayout / CollapsingToolbarLayout con GridView / listView
- Consiga un comportamiento igual que AppBarLayout para cualquier ViewGroup en CoordinatorLayout
- CoordinatorLayout y AppBarLayout elevación
Esto se debe a que el CoordinatorLayout
tiene layout_height="match_parent"
. Eso significa que toma todo el tamaño de la pantalla y su LinearLayout
se representa, pero está por debajo de la CoordinatorLayout
y fuera de la pantalla.
Una manera fácil de arreglar esto sería establecer el weight
de la CoordinatorLayout
para llenar el diseño de los padres, pero dejar espacio necesario para mostrar el pie de página LinearLayout
. Esto sería
<android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1">
Pero esto no es la manera ideal así que sugeriría dejar el CoordinatorLayout
como el elemento de la raíz y colocar su LinearLayout
apenas debajo del RecyclerView
donde pertenece. Puesto que su pie de página LinearLayout
tiene una altura fija esto puede hacerse fácilmente
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout android:layout_height="match_parent" android:layout_width="match_parent"> <android.support.design.widget.AppBarLayout> <android.support.v7.widget.Toolbar /> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:paddingBottom="150dp" /> <LinearLayout android:layout_height="150dp" android:layout_gravity="bottom"> <EditText /> <ImageButton /> </LinearLayout> </android.support.design.widget.CoordinatorLayout>