Как обернуть компоновку координатора в LinearLayout?

Я пытаюсь использовать новый координатор библиотеки Android DesignLayout внутри другого макета. КоординаторLayout содержит RecyclerView. Я пытаюсь сделать простой LinearLayout ниже CoordinatorLayout. Этот макет следует разместить ниже координатораLayout. Это XML Я использую:

<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> 

Как вы можете видеть, я пытаюсь обернуть координаторLayout внутри другого LinearLayout. Однако на экране вторая часть макета даже не отображает.

Это потому, что у CoordinatorLayout есть layout_height="match_parent" . Это означает, что он отображает весь размер экрана, а ваш LinearLayout отображается, но он находится ниже CoordinatorLayout и вне экрана.

Простым способом исправить это будет установка weight CoordinatorLayout для заполнения родительского макета, но при этом необходимо оставить пространство для отображения LinearLayout колонтитула LinearLayout . Это было бы

 <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> 

Но это не идеальный способ, поэтому я бы предложил оставить CoordinatorLayout в качестве корневого элемента и поместить LinearLayout только ниже, чем RecyclerView где он принадлежит. Поскольку ваш нижний колонтитул LinearLayout имеет фиксированную высоту, это можно сделать легко

 <?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> 
Intereting Posts
Расширение элемента recyclerview Android – как предотвратить загрузку веб-страниц при отсутствии подключения к Интернету Как отображать ImageView постепенно вниз сверху вниз Простейший способ модульного тестирования приложения для андроидной библиотеки? Выбор элемента списка списка Android Служба onStartCommand вызывается после завершения действия Использование тестовой платформы Android Разная высота для каждого элемента в GridView Поместите мое приложение в список поиска Google Now Phone (Android Global Search) Как получить «сетевое» время (из параметра «Автоматический» под названием «Использовать сетевые значения»), а не время на телефоне? Android – можно ли узнать, какое приложение имеет аудиофокус? Отображение изображений из папки с возможностью рисования с помощью универсального загрузчика изображений Связывание устройств BLE автоматически удаляется в Android Обрабатывать фрагментацию фрагментации при вращении экрана (с примером кода) Отменить регистрацию широковещательных вызовов до того, как onReceive () прослушает