EditTextポップアップソフトキーボード入力ボックスの問題を隠す
4630 ワード
Activityのレイアウトの下にEditTextがある場合、フォーカスを取得してソフトキーボードを弾き出す場合、処理をしないとソフトキーボードが入力ボックスを遮る可能性があり、ユーザーの提示が悪い、ネット上でも結末案を提出する人が多く、ここで解決の効果を分析する.
EditTextを使用するレイアウトは大きく2つに分けられ、1つはページ表示の内容が欠けたくないことである.例えば、ソフトキーボードがタイトルを画面から押し出し、登録登録検索など、EditTextの多くはページの半分にある.もう1つは、ページの上半分は重要ではありません.例えば、チャットウィンドウ、ソフトキーボードがポップアップするとき、上半分のチャット記録はベース画面の外にあり、EditTextの多くは最下部にあります.その他の場合は本論文に従って選択することができ、結果は一番下にある.
開始:
ネット上でこの問題を解決する方法はいくつかあります.
1.AndroidManifestを修正する.xmlファイル
2.Activityに構成を追加する.
3.レイアウトファイルにScrolVieを追加する.
1.AndroidManifestを修正する.xmlファイル
AndroidManifestでxml対応Activity構成:android:windowSoftInputMode="stateVisible|adjustResize"
意味:このページは、ソフトキーボードがポップアップすると同時に画面の内容が圧縮され、ソフトキーボードの空間が空ける.
その意味を説明します. stateUnspecified:インタフェースに「android:windowSoftInputMode」が設定されていない場合の状態.この状態は、EditTextのあるインタフェースをポップアップするときにソフトキーボードをポップアップしないものであり、EditTextがフォーカスを取得するときにソフトウェアディスク をポップアップする. stateUnchanged:状態は変わらず、前のインタフェースと同様に、前のインタフェースからソフトキーボードがポップアップされ、このインタフェースにジャンプするとソフトキーボードもポップアップ状態になることを意味する. stateHidden:キーボードを隠して、このインタフェースをポップアップするとき、前のインタフェースがどんな状態であっても、このインタフェースのソフトキーボードは隠しています. stateAlwaysHidden:ずっと隠しています(上との違いは未知で、試してみられません). stateVisible:ソフトキーボードを強制的にイジェクトする.インタフェースにジャンプすると、EditTextがなくてもキーボードがポップアップする. stateAlwaysVisible:キーボードを常に表示する(同上).
ここからは内容についても、本文についても adjustUnspecified:デフォルトです.画面がScrowViewに包まれていない場合、キーボードは一部の内容をブロックし、画面がScrowViewに包まれている場合、ScrowViewの内容をスクロールさせてソフトキーボードを置く. adjustResize:メインインタフェースは、ソフトキーボードを配置するためにスケールされる(図1][図2]).
*adjustPan:メイン画面は拡大縮小せず、ソフトキーボードを上に移動して配置する(図3][図4]).
上の2つの違いは、内容がlistviewであれば、現実の一番下のitemの後にソフトキーボードがポップアップされると、adjustResizeはlistviewの下にソフトキーボードで遮られ、adjustPanは現実の一番下のitemである.
2.Activityに構成を追加
このActivityのonCretae()のsetContentView()メソッドの前に、*getWindow()を追加します.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)*
意味:Layout全体に焦点を当てたEditTextを上に出し、余分な空間を圧縮しない.
彼らの意味を説明します. SOFT_INPUT_ADJUST_NOTHING:調整しない(入力方式は完全に直接上書きされ、このパラメータは開放されていない); SOFT_INPUT_ADJUST_PAN:Layout全体を上に出してフォーカスを得るEditText、余分な空間を圧縮しない SOFT_INPUT_ADJUST_RESIZE:Layout全体を再編成し、余分な空間を再割り当てする. SOFT_INPUT_ADJUST_UNSPECIFIED:システム自身がコンテンツに基づいて上の2つの方式の1つを選択する実行(デフォルト構成).
ここSOFT_INPUT_ADJUST_RESIZEとSOFT_INPUT_ADJUST_PANと上のadjustResizeとadjustPanの効果は同じです.
3.レイアウトファイルにScrollViewを追加する
ScrollViewは、ポップアップされたソフトキーボードをレイアウトの下に追加することができ、一部のレイアウトを遮ることができない.ここでは、上のadjustResizeとadjustPanの2つの状態とともに使用することが多い.レイアウト:
上に移動する方法を設定します.
圧縮方法の設定:
結果:ソフトキーボードのイジェクトがレイアウトに影響を与える限り、ScrolViewでレイアウトをラップ、ラップされた内容はスクリーン外のコンテンツをスケールまたは押し出し可能である.そしてEditTextの位置からadjustResizeかadjustPanかを判断する.adjustResizeはシュリンクadjustPanは上押し個人推薦、登録登録用adjustResize、チャットウィンドウ用adjustPan
EditTextを使用するレイアウトは大きく2つに分けられ、1つはページ表示の内容が欠けたくないことである.例えば、ソフトキーボードがタイトルを画面から押し出し、登録登録検索など、EditTextの多くはページの半分にある.もう1つは、ページの上半分は重要ではありません.例えば、チャットウィンドウ、ソフトキーボードがポップアップするとき、上半分のチャット記録はベース画面の外にあり、EditTextの多くは最下部にあります.その他の場合は本論文に従って選択することができ、結果は一番下にある.
開始:
ネット上でこの問題を解決する方法はいくつかあります.
1.AndroidManifestを修正する.xmlファイル
2.Activityに構成を追加する.
3.レイアウトファイルにScrolVieを追加する.
1.AndroidManifestを修正する.xmlファイル
AndroidManifestでxml対応Activity構成:android:windowSoftInputMode="stateVisible|adjustResize"
<activity
android:name=".LoginActivity"
// ,
android:windowSoftInputMode="stateVisible|adjustResize"
android:screenOrientation="portrait">
activity>
意味:このページは、ソフトキーボードがポップアップすると同時に画面の内容が圧縮され、ソフトキーボードの空間が空ける.
その意味を説明します.
ここからは内容についても、本文についても
*adjustPan:メイン画面は拡大縮小せず、ソフトキーボードを上に移動して配置する(図3][図4]).
上の2つの違いは、内容がlistviewであれば、現実の一番下のitemの後にソフトキーボードがポップアップされると、adjustResizeはlistviewの下にソフトキーボードで遮られ、adjustPanは現実の一番下のitemである.
2.Activityに構成を追加
このActivityのonCretae()のsetContentView()メソッドの前に、*getWindow()を追加します.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)*
意味:Layout全体に焦点を当てたEditTextを上に出し、余分な空間を圧縮しない.
彼らの意味を説明します.
ここSOFT_INPUT_ADJUST_RESIZEとSOFT_INPUT_ADJUST_PANと上のadjustResizeとadjustPanの効果は同じです.
@Overrideprotected
void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
setContentView(R.layout.activity_login);
init();
}
3.レイアウトファイルにScrollViewを追加する
ScrollViewは、ポップアップされたソフトキーボードをレイアウトの下に追加することができ、一部のレイアウトを遮ることができない.ここでは、上のadjustResizeとadjustPanの2つの状態とともに使用することが多い.レイアウト:
上に移動する方法を設定します.
圧縮方法の設定:
結果:ソフトキーボードのイジェクトがレイアウトに影響を与える限り、ScrolViewでレイアウトをラップ、ラップされた内容はスクリーン外のコンテンツをスケールまたは押し出し可能である.そしてEditTextの位置からadjustResizeかadjustPanかを判断する.adjustResizeはシュリンクadjustPanは上押し個人推薦、登録登録用adjustResize、チャットウィンドウ用adjustPan