6

SO には、EditText の問題、ソフト入力キーボード、およびマニフェストに含める必要があるもの (adjustPan または AdjustResize) を示す問題に関して、多くの質問があることを知っています。

ここで多くの質問と回答を読みましたが、問題を解決できませんでした。

実際には非常に単純です。ログイン アクティビティがあり、キーボードが表示されていない場合、すべてのコンテンツが 1 つの画面に収まります。このログイン アクティビティの下部に、常に下部にあるボタンがあります。1 つの EditText に焦点を合わせると、キーボードが表示されたり、一部が非表示になったりします。キーボードが上にあるときに下にスクロールできるようにしたいのですが、できません。

  • マニフェストでアクティビティを「adjustPan」に設定しました

キーボードなしとキーボードありの 2 つの画像を次に示します。

ここに画像の説明を入力 ここに画像の説明を入力

ここで、キーボードが表示されたら、下にスクロールしてボタン (黄色と下部) を表示したいと思います。私はそれを行うことはできません。

代わりに、マニフェストで「adjustRezise」に設定すると、次のように別の不要な効果が得られます。

ここに画像の説明を入力

一番下のボタンは他のものの「上」ではありませんが、スクロールできません(「ログイン」ボタンが表示されるように)。

最初の質問は、「adjustPan」でスクロールが機能しないのはなぜですか。キーボードが何かを隠しているのはなぜですか。それは私が言う合理的なことです。

ここに私のXMLがあります:

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

    <ScrollView
        android:id="@+id/ScrollView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/login_logoBarInclude"
        android:fillViewport="true"
        android:orientation="vertical" >

        <RelativeLayout
            android:id="@+id/login_form"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >

            <LinearLayout
                android:id="@+id/iv1"
                android:layout_width="240dp"
                android:layout_height="280dp"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="5dp"
                android:background="@drawable/login_square_adapted"
                android:orientation="vertical"
                android:paddingTop="15dp" >

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="@string/vehicleLogin"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#ffffff" />

                <FrameLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="3dp"
                    android:layout_marginRight="3dp"
                    android:layout_marginTop="10dp" >

                    <include layout="@layout/menu_divider_horizontal" >
                    </include>
                </FrameLayout>

                <RelativeLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="30dp"
                    android:layout_marginRight="30dp"
                    android:layout_marginTop="35dp"
                    android:gravity="center_horizontal"
                    android:orientation="vertical" >

                    <EditText
                        android:id="@+id/login_carNumber"
                        style="@style/EditTextDark"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_toRightOf="@+id/login_car_icon"
                        android:hint="@string/prompt_carNumber"
                        android:inputType="phone"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:textCursorDrawable="@null" >

                        <requestFocus />
                    </EditText>

                    <ImageView
                        android:id="@+id/login_car_icon"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:src="@drawable/user" />

                    <EditText
                        android:id="@+id/login_password"
                        style="@style/EditTextDark"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/login_carNumber"
                        android:layout_marginTop="10dp"
                        android:layout_toRightOf="@+id/login_lock_icon"
                        android:hint="@string/prompt_password"
                        android:inputType="phone"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:textCursorDrawable="@null" >
                    </EditText>

                    <ImageView
                        android:id="@+id/login_lock_icon"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_alignTop="@id/login_password"
                        android:layout_below="@id/login_car_icon"
                        android:src="@drawable/lock" />

                    <Button
                        android:id="@+id/sign_in_button"
                        android:layout_width="fill_parent"
                        android:layout_height="40dp"
                        android:layout_alignParentBottom="true"
                        android:layout_centerHorizontal="true"
                        android:layout_marginBottom="10dp"
                        android:background="@drawable/button_rounded"
                        android:gravity="center_horizontal"
                        android:paddingTop="5dp"
                        android:text="@string/action_sign_in_short"
                        android:textColor="#000000" />
                </RelativeLayout>
            </LinearLayout>
        </RelativeLayout>
    </ScrollView>


    <Button
        android:id="@+id/quit_app_button"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="@string/action_exit_app" />

</RelativeLayout>

=======編集=========

それで、ジョセフの提案に従ってレイアウトを変更しましたが、理由がないにもかかわらず、「高さが非常に大きい」、つまり最後のボタンが「はるか下」になっているため、「はるか下」にスクロールする必要があります" 画面の下部に表示されるのではなく、表示されます。私が言いたいことを理解していただければ幸いです。

右側のスクロールバーに注目してください。ボタンは表示されていません。

*右側のスクロールバーに注意してください。ボタンは「はるか下」にあるため表示されません。また、背景が引き伸ばされているため、「linearLayoyt6」と呼ばれる RelativeLayout (紛らわしい、はい) が何らかの理由で下に拡大されていることを意味します... *

ScrollView と以下のレイアウトの高さを固定 dp に設定しようとしましたが、何も役に立ちませんでした。XML は次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical">

    <RelativeLayout
        android:id="@+id/linearLayout6"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/taxibg3"
        android:orientation="vertical" >

        <RelativeLayout
            android:id="@+id/login_form"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            >

            <LinearLayout
                android:id="@+id/iv1"
                android:layout_width="240dp"
                android:layout_height="280dp"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="25dp"
                android:background="@drawable/login_square_adapted"
                android:orientation="vertical"
                android:paddingBottom="0dp"
                android:paddingLeft="0dp"
                android:paddingRight="0dp"
                android:paddingTop="15dp" >

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="@string/vehicleLogin"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#ffffff" />

                <FrameLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="3dp"
                    android:layout_marginRight="3dp"
                    android:layout_marginTop="10dp" >

                    <include layout="@layout/menu_divider_horizontal" >
                    </include>
                </FrameLayout>

                <RelativeLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="30dp"
                    android:layout_marginRight="30dp"
                    android:layout_marginTop="35dp"
                    android:gravity="center_horizontal"
                    android:orientation="vertical" >

                    <EditText
                        android:id="@+id/login_carNumber"
                        style="@style/EditTextDark"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_toRightOf="@+id/login_car_icon"
                        android:hint="@string/prompt_carNumber"
                        android:inputType="phone"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:textCursorDrawable="@null" >

                        <requestFocus />
                    </EditText>

                    <ImageView
                        android:id="@+id/login_car_icon"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:src="@drawable/user" />

                    <EditText
                        android:id="@+id/login_password"
                        style="@style/EditTextDark"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_below="@id/login_carNumber"
                        android:layout_marginTop="10dp"
                        android:layout_toRightOf="@+id/login_lock_icon"
                        android:hint="@string/prompt_password"
                        android:inputType="phone"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:textCursorDrawable="@null" >
                    </EditText>

                    <ImageView
                        android:id="@+id/login_lock_icon"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_alignTop="@id/login_password"
                        android:layout_below="@id/login_car_icon"
                        android:src="@drawable/lock" />
                </RelativeLayout>

                <FrameLayout
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_marginTop="30dp"
                    android:background="@drawable/login_square_half"
                    android:padding="0dp" >

                    <Button
                        android:id="@+id/sign_in_button"
                        android:layout_width="120dp"
                        android:layout_height="40dp"
                        android:layout_gravity="center_vertical|center_horizontal"
                        android:background="@drawable/button_rounded"
                        android:gravity="center_horizontal"
                        android:text="@string/action_sign_in_short"
                        android:textColor="#000000" />
                </FrameLayout>
            </LinearLayout>
        </RelativeLayout>

        <Button
            android:id="@+id/quit_app_button"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:text="@string/action_exit_app" />
    </RelativeLayout>

</ScrollView>
4

1 に答える 1

1

resizeMode を に変更して、を内側から外側adjustResizeに移動し、を に設定してみてください。ScrollViewRelativeLayout linearLayout6layout_heightRelativeLayoutwrap_content

于 2013-01-13T21:29:24.333 に答える