<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:orientation="vertical"
Android:layout_height="match_parent">
<LinearLayout
Android:layout_gravity="bottom"
Android:orientation="vertical"
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<EditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content" />
<Button
Android:layout_width="match_parent"
Android:layout_height="wrap_content" />
</LinearLayout>
</FrameLayout>
マニフェスト:
Android:windowSoftInputMode="adjustPan"
初期動作:
現在の動作:
望ましい動作:
レイアウトの望ましい動作を実現する方法は? adjustResizeこのオプションはレイアウトのサイズを変更するため、不適切です。
回答ありがとうございます!
あなたはおそらく この答え を見てみたいと思うでしょう。それからの提案:
Window SoftInputModeプロパティをadjustPanおよびadjustResizeに設定します
<activity Android:windowSoftInputMode="adjustPan|adjustResize"> </activity>
その結果を得る唯一の方法は、レイアウトのサイズ変更です。 Android:windowSoftInputMode = "adjustResize"を使用する
マニフェストでこれを試してください:
Android:windowSoftInputMode="adjustResize|stateUnchanged"
これを行う簡単な方法があるとは思いません。少なくとも、フラグを設定するほど簡単ではありません。キーボードを、選択したEditTextよりもはるかに低いビューのレベルまで上げたいという同様の状況がありました。私はこの答えを使用することになりました: Androidでソフトウェアキーボードの可視性を確認する方法は?
キーボードが表示されたら、ビューサイズを手動で調整します。
アクティビティから下の行を削除し、マニフェストからAndroid:windowSoftInputModeを削除することで、以前は隠れていたレイアウト全体のスクロールを取得しました
this.getWindow()。setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN、WindowManager.LayoutParams.FLAG_FULLSCREEN);
この出力ビデオリンクを確認してください: https://mega.nz/#!TpRCWZjY!TqDzv0Yn3Q24PR1JAdH8kRVeDf2iSa1LQbNBgF0SVHk
editTextとButtonを含むレイアウトがRelativeLayoutであるかどうかを確認します。
FrameLayout
のalignParentBottom="true"
プロパティを使用してRelativeLayout
をLinearLayout
に変更してみてください。
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:orientation="vertical"
Android:layout_height="match_parent">
<LinearLayout
Android:layout_alignParentBottom="true"
Android:orientation="vertical"
Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<EditText
Android:layout_width="match_parent"
Android:layout_height="wrap_content" />
<Button
Android:layout_width="match_parent"
Android:layout_height="wrap_content" />
</LinearLayout>
</RelativeLayout>
公式ガイド から、adjustPan
でそれを実装することはできません。
アクティビティのメインウィンドウは、ソフトキーボード用のスペースを確保するためにサイズ変更されていません。むしろ、ウィンドウの内容が自動的にパンされるため、現在のフォーカスがキーボードによって隠されることはなく、ユーザーは入力内容をいつでも確認できます。これは、ウィンドウの隠された部分にアクセスして操作するために、ユーザーがソフトキーボードを閉じる必要がある場合があるため、通常、サイズ変更よりも望ましくありません。
Button
が現在のフォーカスを下回っていますEditText
このプロパティをアクティビティで使用するだけです
Android:windowSoftInputMode="adjustPan"