14

这是一个布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="0px"
            android:layout_weight="1" />

        <FrameLayout
            android:background="#0000ff"
            android:layout_width="match_parent"
            android:layout_height="0px"
            android:layout_weight="1" />

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="0px"
            android:layout_weight="1" />

    </LinearLayout>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" />

</RelativeLayout>

在此处输入图像描述

当触摸 EditText 并出现软键盘时,我希望蓝条保持不变。即我希望保留它的大小和位置。android:windowSoftInputMode我在 AndroidManifest 中为我的活动参数尝试了所有四个可能的值。我的蓝条总是在出现的软键盘上移动或缩小:

android:windowSoftInputMode="adjustUnspecified"或默认情况下:

在此处输入图像描述

android:windowSoftInputMode="adjustPan"android:windowSoftInputMode="adjustNothing"

在此处输入图像描述

android:windowSoftInputMode="adjustResize"

在此处输入图像描述

出现软键b时是否可以保持相同的大小和位置?

4

3 回答 3

5

您必须<ScrollView>用作主要布局。例子:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent">
   ....
</ScrollView>

或在 AndroidManiFest.xml 中使用此代码:

<activity
     android:windowSoftInputMode="adjustNothing">
</activity>
于 2018-01-08T17:32:55.043 回答
1

由于输入是进入EditText你的,它总是会移动一些东西。

考虑有两种布局,一种用于键盘向下时,一种用于键盘向上时。

使用 aViewSwitcher可能会有所帮助。

于 2012-10-30T10:32:14.637 回答
0

我认为这是因为您正在使用 LinearLayout。你能用相对布局改变你的内部布局吗?在您当前的情况下,由于线性布局,键盘只会更改组件之间的边距。并使用 adjustNothing 更改您的配置。

于 2015-06-04T15:43:23.503 回答