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>