web-dev-qa-db-ja.com

Android-ソフトキーボードがアクティビティのレイアウトを画面から押し出します

私の活動のレイアウトは以下のとおりです。

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
   Android:layout_width="fill_parent"
   Android:layout_height="fill_parent"
   Android:orientation="vertical">

   <FrameLayout Android:id="@+id/title_bar"
      Android:layout_width="fill_parent"
      Android:layout_height="25dip"
      Android:background="@drawable/bg_title" />

   <LinearLayout Android:id="@+id/main"
      Android:width="fill_parent"
      Android:layout_height="fill_parent"
      Android:layout_weight="1">
         <ListView Android:id="@+id/Android:list"
            Android:layout_width="fill_parent"
            Android:layout_height="fill_parent" />
         <TextView Android:id="@+id/Android:empty"
            Android:layout_width="fill_parent"
            Android:layout_height="fill_parent" />
      </FrameLayout>
   </LinearLayout>

   <LinearLayout
      Android:layout_width="fill_parent"
      Android:layout_height="50dip" >
      <EditText Android:id="@+id/query"
         Android:layout_width="fill_parent"
         Android:layout_height="wrap_content" 
         Android:hint="Enter some search terms"
         Android:singleLine="true" 
         Android:layout_weight="1" />
      <Button Android:id="@+id/btn_hide"
         Android:layout_width="wrap_content"
         Android:layout_height="wrap_content"
         Android:background="@drawable/btn_hide"
         Android:layout_marginLeft="6dip" />
   </LinearLayout>
 </LinearLayout>

そのため、検索ボックスは画面の下部に固定されています。

ただし、ユーザーがEditTextをクリックすると、ソフトキーボードが表示され、検索ボックス以外のレイアウトが画面から押し出されます。

私はAndroidを始めたばかりなので、ここで何か問題がありますか?

25
venkatagiri

マニフェストでのアクティビティに以下を追加してみてください。

Android:windowSoftInputMode="adjustPan"
51
Asahi

興味のある方は、Android:windowSoftInputMode="adjustPan"Android:windowSoftInputMode="adjustResize"の違い:

"adjustResize"

アクティビティのウィンドウのサイズが変更され、画面上のソフトキーボード用のスペースが確保されます。

"adjustPan"

アクティビティのウィンドウの内容は自動的にパンされるため、現在のフォーカスがキーボードによってブロックされることはありません。これは、ユーザーが入力内容を確認できるようにするためです。これは、ウィンドウの隠された部分にアクセスして操作するために、ユーザーがソフトキーボードを閉じる必要がある場合があるため、通常、サイズ変更よりも望ましくありません。

Androidドキュメント

引用リンク

14
Ushal Naidoo

@Rajタブ付きアプリケーションを使用している場合は、追加する必要があります

Android:windowSoftInputMode="adjustPan"

タブを追加するActivityでは、これはおそらくランチャーアクティビティです。

これが私のコードの抜粋です

<activity
   Android:label="@string/app_name"
   Android:name=".MainActivity" Android:windowSoftInputMode="adjustPan">
   <intent-filter >
     <action Android:name="Android.intent.action.MAIN" />
     <category Android:name="Android.intent.category.LAUNCHER" />
   </intent-filter>
5
Mushtaq Jameel