我有一个像这样的android布局:
--------------
| IMAGE1 |
--------------
| SCROLLVIEW |
--------------
| IMAGE2 |
--------------
当键盘弹出以在scrollview的edittext中输入文本时,它会调整整个应用程序的大小。有没有办法将IMAGE2保留在屏幕底部?
应用程序的布局:
<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"
android:paddingBottom="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".SignupActivity" >
<ImageView
android:id="@+id/Logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="26dp"
android:src="@drawable/logo_1" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:scaleType="centerCrop"
android:src="@drawable/wave_2" />
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_below="@+id/Logo" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="286dp"
android:fadingEdge="none"
android:orientation="vertical"
android:paddingBottom="30dp" >
<EditText
android:id="@+id/editName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ems="10"
android:hint="@string/name" />
<EditText
android:id="@+id/editSurname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ems="10"
android:hint="@string/surname" />
<EditText
android:id="@+id/editCompany"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ems="10"
android:hint="@string/company" />
<Space
android:layout_width="match_parent"
android:layout_height="20dp" />
<EditText
android:id="@+id/editUsername"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ems="10"
android:hint="@string/username" />
<EditText
android:id="@+id/editPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ems="10"
android:hint="@string/password"
android:inputType="textPassword" />
<EditText
android:id="@+id/editMail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ems="10"
android:hint="@string/mail"
android:inputType="textEmailAddress" />
<Space
android:layout_width="match_parent"
android:layout_height="20dp" />
<EditText
android:id="@+id/editAddress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ems="10"
android:hint="@string/address" />
<EditText
android:id="@+id/editZipCode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ems="10"
android:hint="@string/zipcode" />
<EditText
android:id="@+id/editCity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ems="10"
android:hint="@string/city" />
<EditText
android:id="@+id/editCountry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ems="10"
android:hint="@string/country" />
<EditText
android:id="@+id/editPhone1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ems="10"
android:hint="@string/phone" />
<EditText
android:id="@+id/editPhone2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ems="10"
android:hint="@string/mobilephone" />
<Space
android:layout_width="match_parent"
android:layout_height="20dp" />
<Button
android:id="@+id/acceptButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="signup"
android:layout_gravity="center_horizontal"
android:text="@string/register" />
</LinearLayout>
</ScrollView>
</RelativeLayout>
编辑:
这就是布局的实际情况。我希望将绿色波形图像保留在页面的末尾(键盘下方),同时仍然调整ScrollView的大小以使其可用。
http://i.stack.imgur.com/ji1FB.png http://i.stack.imgur.com/D4jcX.png
答案 0 :(得分:2)
在活动代码中的清单中添加此行可能是有效的
<activity
android:name=".DemoActivity"
android:windowSoftInputMode="stateHidden|adjustResize" >
</activity>
答案 1 :(得分:1)
如果您希望IMAGE2
卡在屏幕底部,请将以下代码放在manifest.xml中的activity标记内
<activity
.
.
android:windowSoftInputMode="adjustPan" >
</activity>
编辑:
尝试将下面的标记与
一起放在下面android:windowSoftInputMode="stateVisible|adjustResize"
如果这个适合你,请告诉我。
答案 2 :(得分:0)
问题是您的Button
是ScrollView
的一部分。您应该将Button
从ScrollView
中提取到父RelativeLayout
,然后更改属性,如下所示:
<Button
android:id="@+id/acceptButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" //keep it to the bottom of the layout
android:onClick="signup"
android:layout_gravity="center_horizontal"
android:text="@string/register" />
然后您的ScrollView
也需要修改:
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_below="@+id/Logo"
android:layout_above="@+id/acceptButton" //make it stay above the button
>
鉴于您使用的是android:windowSoftInputMode="adjustResize"
,这应该会给您正确的行为。
编辑:等等,如果您只想让背景保持定位,请尝试将该图片设置为windowBackground
主题中的Activity
。 (例如,将android:windowBackground="@drawable/my_background_image"
添加到Activity
使用的主题中。