シンプルなログイン アクティビティを設計しています。次の xml レイアウトを使用しました。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
android:layout_gravity="center_vertical|center_horizontal"
android:gravity="center_vertical|center_horizontal"
android:layout_margin="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My application title"
android:textSize="30sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:orientation="vertical"
android:layout_gravity="center_vertical|center_horizontal"
android:gravity="center_vertical"
android:layout_margin="15dp">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Username"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:layout_marginTop="15dp"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:text="Login"/>
</LinearLayout>
</LinearLayout>
そして、私はこの結果を得ました:
しかし、フォーカスが最初の EditText にある場合、私はこれを取得します:
フォーカスが 2 番目の EdiText にある場合、結果は次のようになります。
私の活動のために、マニフェストで次の行を使用したことを考慮してください。
android:windowSoftInputMode="adjustPan|adjustResize"
仮想キーボードが表示されたときに、2 つの編集テキスト、ボタン、およびテキストビューが表示され、使用可能な画面の中央に正しく配置されるようにします。コードで何を変更する必要がありますか?
注:マニフェストの行を削除すると、同じ結果になります:
android:windowSoftInputMode="adjustPan|adjustResize"