Я разрабатываю экран чата. Он состоит из CollapsingToolbarLayout для изображения профиля пользователя, RecyclerView для списка сообщений и поля для отправки сообщений. Я не могу понять, можно ли прикрепить поле ввода к нижнему экрану и предотвратить его прокрутку с остальной частью экрана?КоординаторLayout с RecyclerView и нижним приложением EditText
Я достиг почти того, чего хочу, если обернуть координаторLayout в вертикальном LinearLayout и поместить EditText за пределы CoordinatorLayout. Однако в этом случае поведение клавиатуры отключается от RecyclerView - при открытии клавиатуры она не прокручивается вверх/вниз.
Если я пытаюсь поставить EditText внутри CoordinatorLayout прокручивает из экрана, я не знаю, есть ли какие-либо специальные поведение мне нужно установить для него
Мой Компоновка
<?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/keyboard_listener"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<android.support.design.widget.CoordinatorLayout
android:id="@+id/coordinator"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
>
<RecyclerView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:clipToPadding="false"
android:focusableInTouchMode="true"
android:paddingBottom="20dp"
android:scrollbarStyle="outsideOverlay"
android:scrollbars="vertical"
android:transcriptMode="normal"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
/>
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
>
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/screen_toolbar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
app:titleEnabled="false"
>
<FrameLayout
android:id="@+id/toolbar_fragment_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<Toolbar
android:id="@+id/screen_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:layout_collapseMode="pin"
/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
<EditText
android:id="@+id/messageEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:hint="@string/send_hint"
android:inputType="textCapSentences|textMultiLine"
android:maxLength="2000"
android:maxLines="4"
android:padding="10dp"
android:textSize="14sp"/>
</LinearLayout>
хорошо, если вы действительно хотите 'EditText' в нижней части экрана, вы должны исключить его из' CoordinatorLayout' и положить его в эк . Второй должен быть «RelativeLayout», поэтому вы могли бы дать атрибуты EditText, такие как «android: layout_alignParentBottom =« true »' – piotrek1543
@ piotrek1543 Я ценю ваши усилия, но извините - вы действительно не помогаете вообще :) Пожалуйста прочитайте мой вопрос еще раз - я обернул CoordinatorLayout в LinearLayout, и мой edittext прикреплен так, как я хочу. Но тогда клавиатура не прокручивает RecyclerView – Anton
Что касается вашей проблемы с координатором, андроид: isScrollContainer = "true" исправляет это, имя несколько вводит в заблуждение, но комментарии являются ключом: установите это, если представление будет служить прокруткой контейнер, что означает, что его можно изменить, чтобы уменьшить его общее окно, чтобы было место для метода ввода. Если не установлено, значение по умолчанию будет истинным, если «полоса прокрутки» имеет вертикальную полосу прокрутки, иначе она будет ложной. –