这是一个布局:
<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并出现软键盘时,我希望蓝条保持不变。即我希望保留它的大小和位置。我在AndroidManifest中尝试了我的活动参数android:windowSoftInputMode
的所有四个可能值。总是我的蓝色条在软键盘上移动或收缩:
android:windowSoftInputMode="adjustUnspecified"
或默认情况下:
android:windowSoftInputMode="adjustPan"
或android:windowSoftInputMode="adjustNothing"
:
android:windowSoftInputMode="adjustResize"
:
当出现软键时,是否可以保持相同的大小和位置?
答案 0 :(得分:3)
您必须使用<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>
答案 1 :(得分:1)
由于输入进入你的EditText
,所以它总会移动一些东西。
考虑使用两种布局,一种用于键盘关闭时,一种用于键盘启动时。
使用ViewSwitcher
可能会有所帮助。
答案 2 :(得分:0)
我认为这是因为您使用的是LinearLayout。你能用相对布局改变你的内部布局吗?在您目前的情况下,由于线性布局,键盘只会更改组件之间的边距。并使用adjustNothing更改您的配置。