在adjustResize和软键盘打开时保留EditText比例

Posted

技术标签:

【中文标题】在adjustResize和软键盘打开时保留EditText比例【英文标题】:retain EditText proportion when adjustResize and soft keyboard are on 【发布时间】:2014-05-09 05:48:58 【问题描述】:

我正在 android 中制作消息屏幕。布局是线性布局。

但是当键盘可见时。

底部布局比例乱了。我怎样才能强迫它保持它的比例?这是我的布局文件。我尝试使用 adjustPan,editText 可见但操作栏不见了。我想使用 adjustResize 因为我也想要操作栏,但 editText 不再可见。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:flatui="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_
    android:layout_>


    <LinearLayout
        android:orientation="vertical"
        android:layout_
        android:layout_
        android:background="@color/background_grey"
        android:layout_weight="93" >

        <ListView android:id="@android:id/list"
            android:layout_
            android:layout_ />

        <TextView android:id="@android:id/empty"
            android:layout_
            android:layout_
            android:gravity="center"
            android:textAppearance="@android:style/TextAppearance.Large"
            android:text="No chat history." />

    </LinearLayout>

    <LinearLayout android:orientation="horizontal"
        android:layout_
        android:layout_
        android:layout_margin="5dp"
        android:layout_weight="7">

        <com.cengalabs.flatui.views.FlatEditText
            android:id="@+id/message"
            android:layout_
            android:layout_
            android:layout_weight="4"
            android:gravity="top"
            android:hint="Message"
            android:layout_marginRight="5dp"
            flatui:theme="Deep"
            flatui:fieldStyle="transparentBox"
            flatui:cornerRadius="3dip"/>

        <com.cengalabs.flatui.views.FlatButton
            android:id="@+id/sign_in_button"
            android:layout_
            android:layout_
            android:text="Send"
            android:layout_weight="1"
            flatui:theme="Deep"
            flatui:textAppearance="none"/>

    </LinearLayout>

</LinearLayout>

【问题讨论】:

你可以在清单文件中写什么???? @BornToWin 我添加到活动标签的唯一内容是android:windowSoftInputMode="stateHidden|adjustResize" 【参考方案1】:

尝试使用这种布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:flatui="http://schemas.android.com/apk/res-auto"
    android:layout_
    android:layout_>


    <LinearLayout
        android:orientation="vertical"
        android:layout_
        android:layout_
        android:background="@color/background_grey"
        android:layout_above="@+id/bottomToolbox">

        <ListView android:id="@android:id/list"
            android:layout_
            android:layout_ />

        <TextView android:id="@android:id/empty"
            android:layout_
            android:layout_
            android:gravity="center"
            android:textAppearance="@android:style/TextAppearance.Large"
            android:text="No chat history." />

    </LinearLayout>

    <LinearLayout 
        android:id="@+id/bottomToolbox"
        android:orientation="horizontal"
        android:layout_
        android:layout_
        android:layout_alignParentBottom="true"
        android:layout_margin="5dp">

        <com.cengalabs.flatui.views.FlatEditText
            android:id="@+id/message"
            android:layout_
            android:layout_
            android:layout_weight="4"
            android:gravity="top"
            android:hint="Message"
            android:layout_marginRight="5dp"
            flatui:theme="Deep"
            flatui:fieldStyle="transparentBox"
            flatui:cornerRadius="3dip"/>

        <com.cengalabs.flatui.views.FlatButton
            android:id="@+id/sign_in_button"
            android:layout_
            android:layout_
            android:text="Send"
            android:layout_weight="1"
            flatui:theme="Deep"
            flatui:textAppearance="none"/>

    </LinearLayout>

</RelativeLayout>

【讨论】:

这个答案就是我要找的!谢谢。

以上是关于在adjustResize和软键盘打开时保留EditText比例的主要内容,如果未能解决你的问题,请参考以下文章

Android -- 打开时隐藏软键盘

Android:键盘打开时出现 Tablayout

键盘上方的android按钮[重复]

移动网络 - 如何在键盘打开时获取屏幕高度

键盘打开时如何固定小部件布局?

键盘打开时如何避免应用缩放?