Ich bin ein Chat-Fenster zu entwickeln. Es besteht aus CollapsingToolbarLayout für Benutzerprofilbild, RecyclerView für Nachrichtenliste und einem Bearbeitungsfeld zum Senden von Nachrichten. Ich kann nicht herausfinden, ob es möglich ist, das Eingabefeld am unteren Bildschirm anzumelden und zu verhindern, dass es mit dem Rest des Bildschirms scrollt?CoordinatorLayout mit RecyclerView und unten festgelegten EditText
ich fast erreicht, was ich will, wenn ich CoordinatorLayout in einer vertikalen Linearlayout wickeln und EditText außerhalb von CoordinatorLayout setzen. In diesem Fall ist das Verhalten der Tastatur jedoch von der RecyclerView getrennt - es wird beim Öffnen der Tastatur nicht nach oben/unten gescrollt.
Wenn ich versuche, EditText innen CoordinatorLayout um es aus dem Bildschirm scrollt, ich weiß nicht, ob es eine spezielle Verhalten ist Ich muss eingestellt dafür
mein Layout
<?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>
gut, wollen, wenn Sie wirklich 'EditText' am unteren Rande des Bildschirms sollten Sie es von' CoordinatorLayout' ausschließen und es in Ihrem activ setzen Layout. Die zweite sollte 'RelativeLayout' sein, so dass Sie der Lage wäre, ein EditText Attribute wie' android zu geben: layout_alignParentBottom = „true“ ' – piotrek1543
@ piotrek1543 Vielen Dank für Ihre Bemühungen, aber leider - Sie helfen wirklich überhaupt nicht :) Bitte lese meine Frage noch einmal - ich habe CoordinatorLayout in ein LinearLayout eingepackt und mein Editiertext wird genau so gepinnt, wie ich es möchte. Aber dann Tastatur scrollen nicht die RecyclerView – Anton
In Bezug auf Ihre coordinatorlayout Ausgabe, android: isScrollContainer = „true“ wird dies beheben, ist der Name etwas irreführend, aber die Kommentare sind die Schlüssel: Stellen Sie diese Option, wenn die Ansicht als Scrollen dienen container, was bedeutet, dass die Größe geändert werden kann, um das gesamte Fenster zu verkleinern, so dass Platz für eine Eingabemethode besteht. Wenn nicht gesetzt, ist der Standardwert wahr, wenn für "Bildlaufleisten" die vertikale Bildlaufleiste festgelegt ist, andernfalls ist dies der Wert "false". –