6

我的 Android 应用程序的主要活动如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background"
    android:orientation="vertical" >

    <ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/ScrollView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:orientation="vertical"
        android:paddingLeft="60dp"
        android:paddingTop="53dp" >

        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/RelativeLayout1"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/billAmountText"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/billAmount_string"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <EditText
                android:id="@+id/billAmount"
                android:layout_width="173dp"
                android:layout_height="wrap_content"
                android:layout_below="@id/billAmountText"
                android:layout_marginTop="3dp"
                android:inputType="numberDecimal" />
        </RelativeLayout>
    </ScrollView>

</RelativeLayout>

为了确保在键盘弹出时背景图像(在第一个 RelativeLayout 中定义)不会被挤压,我android:windowSoftInputMode="stateVisible|adjustPan在清单文件中为我的活动设置。现在背景和布局都很好,没有任何东西可以调整大小。

但问题是我的 ScrollView 现在不起作用,因为我想系统认为由于我对清单的上述修改而不需要调整窗口大小 - 所以 ScrollView 没有被激活。当我取出时会发生相反的情况android:windowSoftInputMode="stateVisible|adjustPan,滚动有效,但是当键盘弹出时背景会被挤压。

有什么方法可以对其进行编码,这样我的背景就不会被挤压,而且我的 ScrollView 仍然可以工作?谢谢!

4

2 回答 2

3

尝试在您的活动中使用windowSoftInputMode具有以下值的属性:

android:windowSoftInputMode="stateAlwaysHidden|adjustResize"

我不知道是否有必要,但您可以尝试将 to 添加到布局的ScrollView标签fillViewPorttrue。所以它应该看起来像我在下面展示给你的东西:

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true">

        <!-- Other Views -->
</ScrollView>

让我知道你的进展。

于 2012-08-10T00:04:13.647 回答
1

在您的滚动视图中放置一个相对布局,子 0 是图像视图,子 1 是您的内容。使用 imageview 作为背景图像 (src) 而不是滚动视图的背景。imageview 将尊重 scaleTypes,而布局的背景则不会。

于 2013-02-26T18:28:33.407 回答