1

在一个 Android 活动中,我有一些输入字段,下面有一些按钮。因为我不使用软键盘来推动所有内容,并且希望让用户能够非常轻松地导航到不同的输入字段,所以我将输入字段和按钮放入 ScrollView。

现在我希望按钮位于屏幕底部,当软键盘关闭时
,在 ScrollView 中的输入字段下方,当键盘打开时。
如果我添加

android:layout_below="@id/input_fields"

按钮始终位于输入字段下方,但不在屏幕底部。

android:layout_alignParentBottom="true"

将它们与底部对齐,但是当键盘打开时,它们位于最后一个输入字段的前面。

有人知道该怎么做吗?

我的布局文件示例:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >


        <RelativeLayout
            android:id="@+id/input_fields"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" 
            android:layout_alignParentTop="true" >

                   <!-- some input-fields -->

        </RelativeLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"

            android:layout_alignParentBottom="true"
            android:layout_below="@id/input_fields"

            android:padding="5dp">

            <!-- 2 buttons -->

        </LinearLayout>
</RelativeLayout>

如果您需要更多信息:请问!
提前感谢您的帮助!

编辑:一些进一步的信息:

“在前面”是指按钮“隐藏”输入字段,因为它们没有与输入字段布局对齐,而是与父布局的末尾对齐(这是一个相对布局内滚动视图)。当我使用你的建议时,这已经消失了,但是按钮总是在键盘上方可见(我以前也是这样做的,但我想做一点不同,以节省一些空间)。当键盘打开时,我希望在输入字段之后的 ScrollView 中有按钮。这样你就可以看到 ScrollView,如果你滚动到它的末尾,在底部(在输入字段之后)你应该看到按钮。不会有问题的,但我希望按钮在键盘关闭时保持在屏幕底部,无论 ScrollView 是否填满所有空间。如果你有一些想法会很好!

4

1 回答 1

-1

添加您的字段ScrollView并将您的按钮放在外面ScrollView,如下所示:

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

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1" >

    <LinearLayout
        android:id="@+id/input_fields"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <!-- some input-fields -->

        <EditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10" >

            <requestFocus />
        </EditText>

        <EditText
            android:id="@+id/editText2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10" />
    </LinearLayout>
</ScrollView>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="5dp" >

    <!-- 2 buttons -->

    <Button
        android:id="@+id/button1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Button" />

    <Button
        android:id="@+id/button2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Button" />
</LinearLayout>

</LinearLayout>

也使用

<activity android:windowSoftInputMode="adjustResize" . . . >

在您的活动标签中。请检查这个http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft

于 2013-01-31T18:04:20.520 回答