使用带PercentageLayout的键盘时视图会缩小

时间:2016-04-24 08:56:49

标签: java android xml user-interface

我有2个不同的XML文件。一个是 signup.xml 另一个 chat.xml ,它们都是用PercentageLayout库构建的。

signup.xml 效果很好 - 打开键盘不会改变任何视图。 但是,在 chat.xml 每当我弹出键盘时,视图会缩小或离开屏幕,我不知道为什么因为我几乎以相同的方式构建它们,只有我怀疑因为我使用{ {1}}这种情况发生了。

问题布局ScrollView

chat.xml

工作布局 <?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" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- top --> <LinearLayout android:id="@+id/top" android:layout_width="0dp" android:layout_height="0dp" app:layout_widthPercent="100%" app:layout_heightPercent="8%" android:background="#075607" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:textColor="#acddf4" android:textSize="20sp" android:text="jfioewjfoiewjfoi" android:gravity="center" android:layout_gravity="center_horizontal|center_vertical" /> </LinearLayout> <!-- Mid --> <LinearLayout android:id="@+id/mid" android:layout_below="@+id/top" android:layout_width="0dp" android:layout_height="0dp" app:layout_widthPercent="100%" app:layout_heightPercent="84%" android:background="#b1b7b3" android:orientation="vertical"> <ScrollView android:id="@+id/scroller" android:layout_width="match_parent" android:layout_height="fill_parent" android:background="@drawable/chat_bg" > <LinearLayout android:id="@+id/chatWindowContainer" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > </LinearLayout> </ScrollView> </LinearLayout> <!-- Bottom --> <LinearLayout android:id="@+id/bottom" android:layout_below="@+id/mid" android:layout_width="0dp" android:layout_height="0dp" app:layout_widthPercent="100%" app:layout_heightPercent="8%" android:background="#000000" android:orientation="horizontal"> <EditText android:id="@+id/etMessage" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:ems="10" android:paddingLeft="5dp" android:background="@drawable/text" android:imeOptions="actionNone" android:inputType="textMultiLine" android:singleLine="false" /> <Button android:id="@+id/bSendMessage" android:layout_width="40dp" android:layout_height="match_parent" android:background="@drawable/ic_send" android:layout_gravity="right" /> </LinearLayout> :                  

signup.xml

1 个答案:

答案 0 :(得分:0)

使用相对布局解决了我在布局后测试的缩小布局问题。

添加以下带有活动代码的条目:android:windowSoftInputMode="adjustResize"

你的布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- top -->
    <LinearLayout
        android:id="@+id/top"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:background="#075607"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:textColor="#acddf4"
            android:textSize="20sp"
            android:text="jfioewjfoiewjfoi"
            android:gravity="center"
            android:layout_gravity="center_horizontal|center_vertical" />

    </LinearLayout>
    <!-- Mid -->
    <LinearLayout
        android:id="@+id/mid"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/bottom"
        android:layout_below="@+id/top"
        android:background="#b1b7b3"
        android:orientation="vertical">

        <ScrollView
            android:id="@+id/scroller"
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
             >

            <LinearLayout
                android:id="@+id/chatWindowContainer"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
            </LinearLayout>
        </ScrollView>


    </LinearLayout>
    <!-- Bottom -->
    <LinearLayout
        android:id="@+id/bottom"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        android:background="#000000"
        android:orientation="horizontal"
        android:layout_alignParentBottom="true">

        <EditText
            android:id="@+id/etMessage"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:ems="10"
            android:paddingLeft="5dp"
            android:imeOptions="actionNone"
            android:inputType="textMultiLine"
            android:singleLine="false" />

        <Button
            android:id="@+id/bSendMessage"
            android:layout_width="40dp"
            android:layout_height="match_parent"


            android:layout_gravity="right" />



    </LinearLayout>
    </RelativeLayout>