Android软键盘推动工具栏& recyclerview up

时间:2017-07-22 08:32:38

标签: android android-layout android-softkeyboard android-toolbar

参见下面的图片。当我点击edittext时,我的整个布局都会推到顶部。结果应该是工具栏& recyclerview应该固定在顶部。

Image 1

Image 2

我的布局如下所示:

<?xml version="1.0" encoding="utf-8"?>

<android.support.percent.PercentRelativeLayout 
   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"
   tools:context=".PostDetailActivity">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    android:fitsSystemWindows="true"
    android:layout_alignParentTop="true"
    android:theme="?attr/actionBarTheme" />

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_comments"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_heightPercent="80%"
    android:layout_below="@+id/toolbar"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:listitem="@layout/item_comment">

</android.support.v7.widget.RecyclerView>


    <LinearLayout
        android:id="@+id/comment_form"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_below="@+id/recycler_comments"
        android:weightSum="1.0"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">


        <EditText
            android:id="@+id/field_comment_text"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.8"
            android:focusableInTouchMode="true"
            android:hint="Write a comment..."
            android:imeOptions="actionDone"
            android:maxLines="1" />

        <Button
            android:id="@+id/button_post_comment"
            style="@style/Base.Widget.AppCompat.Button.Borderless"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.2"
            android:text="Post" />

    </LinearLayout>

我的manifest.xml文件:

android:windowSoftInputMode="stateAlwaysHidden|adjustPan"

我尝试过尝试“adjustResize”,但问题是我底部的linearlayout隐藏在键盘下面。

那我该怎么办?

2 个答案:

答案 0 :(得分:0)

在清单

中添加此内容
android:windowSoftInputMode="stateHidden"

Xml布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/coordinatorLayoutMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/color_background">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:fitsSystemWindows="true"
        android:theme="@style/AppTheme"
        app:elevation="0dp">

        <!-- Load the toolbar here -->
        <include
            layout="@layout/toolbar_grey"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </android.support.design.widget.AppBarLayout>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="?attr/actionBarSize"
        android:orientation="vertical">


        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerViewUserChat"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/relativeLayoutBottom"
            android:scrollbars="vertical" />

        <RelativeLayout
            android:id="@+id/relativeLayoutBottom"
            android:layout_width="match_parent"
            android:layout_height="45dp"
            android:layout_alignParentBottom="true"
            android:background="@color/color_chat_bottom">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal"
                android:weightSum="1">

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_margin="10dp"
                    android:layout_weight=".80"
                    android:background="@drawable/border_white_bg"
                    android:weightSum="1">

                    <EditText
                        android:id="@+id/editTextMessage"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_marginLeft="10dp"
                        android:background="@android:color/transparent"
                        android:hint="@string/text_user_chat_hint"
                        android:inputType="textCapSentences"
                        android:singleLine="true"
                        android:textColor="@color/color_text"
                        android:textColorHint="@color/color_text"
                        android:textSize="14sp" />

                </LinearLayout>

                <TextView
                    android:id="@+id/textViewDone"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight=".20"
                    android:gravity="center"
                    android:text="@string/button_user_chat_send"
                    android:textColor="@color/color_profile_border"
                    android:textSize="14sp"
                    android:textStyle="bold"/>
            </LinearLayout>
        </RelativeLayout>


    </RelativeLayout>


</android.support.design.widget.CoordinatorLayout>

答案 1 :(得分:0)

您是否尝试将PercentRelativeLayout更改为CoordinatorLayout