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.

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> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.