1

シンプルなログイン アクティビティを設計しています。次の 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"
4

1 に答える 1

1

親 LinearLayout を ScrollView に置き換えることができます。

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

  <LinearLayout ...>

  ....
  ....

  </LinearLayout>


</ScrollView>

これを試してください、それは私のapkのいくつかで動作します!

編集:申し訳ありませんが、テキストを自動的に中央に配置することを確認できませんでした。これにより、指をスワイプして手動で編集テキストを中央に調整できます..

于 2014-02-28T11:30:10.623 に答える