2

我有一个这样的android布局:

--------------
|   IMAGE1   | 
--------------
| SCROLLVIEW |  
--------------
|   IMAGE2   |
--------------

当键盘弹出以在滚动视图的编辑文本中输入文本时,它会调整整个应用程序的大小。有没有办法让 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

4

3 回答 3

2

在您的清单中的活动标签中添加此行可能是这样的

    <activity
        android:name=".DemoActivity"
        android:windowSoftInputMode="stateHidden|adjustResize" >
    </activity>
于 2013-09-17T12:28:49.753 回答
1

如果您希望IMAGE2卡在屏幕底部,请将以下代码放入 manifest.xml 中的活动标记内

<activity
       .
       . 
        android:windowSoftInputMode="adjustPan" >
</activity>

编辑:

尝试将以下标签与上述标签一起放置

android:windowSoftInputMode="stateVisible|adjustResize"

让我知道这个是否适合您。

于 2013-09-17T12:42:34.713 回答
0

问题是您ButtonScrollView. 您应该将您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",这应该会给您正确的行为。

编辑:等等,如果您只想让背景保持定位,请尝试将该图像设置为您windowBackgroundActivity主题。(例如添加android:windowBackground="@drawable/my_background_image"到您Activity使用的主题中)。

于 2013-09-17T18:41:38.697 回答