2

これはこの質問のフォローアップです。

この問題に何日も費やしましたが、私が望むものを手に入れることができないようです. 私が非常に簡単に必要としているのは、編集テキスト フィールドに触れた後にキーボードがポップアップしたときに、このビュー全体をスクロール可能にすることです。

ここに画像の説明を入力

このビューはスクロール可能ではないことに注意してください。スクロール可能である必要はありません。

したがって、ユーザーが edittext フィールド (たとえば最初のフィールド) にアクセスすると、次のようになります。

ここに画像の説明を入力

必要に応じて、ビューをスクロールして、次のように終了することもできます。

ここに画像の説明を入力

考えられるすべてのスクロールビューの組み合わせを試しましたが、背景画像を引き伸ばすだけです。これには簡単な解決策があると確信していますが、見つけることができません。この問題を解決できる人には本当に感謝しています。ちなみに、レイアウトの XML は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/background"
    android:orientation="vertical"
    android:paddingLeft="60dp"
    android:paddingTop="53dp" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="text1"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="173dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView1"
        android:layout_marginTop="3dp"
        android:inputType="numberDecimal" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/editText1"
        android:layout_marginTop="3dp"
        android:text="text2"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="173dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView2"
        android:layout_marginTop="3dp"
        android:inputType="numberDecimal" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/editText2"
        android:layout_marginTop="3dp"
        android:text="text3"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/editText3"
        android:layout_width="173dp"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView3"
        android:layout_marginTop="3dp"
        android:inputType="numberDecimal" />

    <Button
        android:id="@+id/button1"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/editText3"
        android:layout_marginTop="3dp"
        android:text="text4" />

    <ImageView
        android:id="@+id/gearImage3"
        android:layout_width="35dp"
        android:layout_height="35dp"
        android:layout_alignLeft="@+id/button1"
        android:layout_below="@id/button1"
        android:layout_marginTop="70dp"
        android:clickable="true"
        android:contentDescription="@string/gearDescription_string"
        android:src="@drawable/gear" />

</RelativeLayout>

後の 2 つの画像は実際のアプリのものではなく (必要なものを表示するためにフォトショップで加工したものです)、最初の画像は私のアプリのものです。ありがとう。

4

1 に答える 1

5

ScrollView は、データがある限りスクロールします。したがって、 ScrollView を追加するだけで問題が解決するはずです。これを xml の先頭に追加します。

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

そして、明らかにこれを他のすべての後に追加します。

 </ScrollView>

私は自分のアプリでこれを使用しています。キーボードが表示されても、ページの一番下までスクロールできます。スクリーンショット 1 に示されているように、フィールドが通常の電話ページ 1 つ分よりも長くない場合、とにかくスクロールしません。画面全体を表示できないため、キーボードを上げたときにのみスクロールします。

お役に立てれば!

于 2012-07-30T21:45:53.343 に答える