免責事項:この記事はxing_starオリジナル記事です、ソースを明記してください!
この記事の同期http://javaexception.com/archives/150
ソフトキーボードの問題没入テーマ
浸漬処理のためのプロジェクトhttps://github.com/gyf-dev/ImmersionBar オープンソースプロジェクトは、プロジェクトはまだ、病気の多くに対処することができます。これらの日は、単なる要約するので、ここでは、この問題に遭遇しました。
当社のログインページが没入テーマ、レイアウトで、2のEditTextがあります。携帯電話の狭い画面では、のEditTextの底がソフトキーボードカバー、この悪い経験であることを、あなただけ解決する方法を考えることができます。
ImmersionBarソフトキーボードは、この治療法があり、その使用を理解するために、そのAPIの操作に応じて、問題を解決することができます。
ImmersionBarには、いくつかの非常に一般的な問題 https://github.com/gyf-dev/ImmersionBar/issues/288 https://github.com/gyf-dev/ImmersionBar/issues/79 これらの2つの問題は、keyboardEnableを設定しました、上部に下部のコントロールが可能になる(真)、これはデュー・プロセスImmersionBarする必要がありません、それはこのために、鍋だ、我々はbottomLayoutを設定し、ソフトキーボードがポップアップしたときに、端部に制御を取得することができます回復がbottomLayout表示されたときにView.GONEとして、崩壊しました。
ソリューション
コードは簡単です:
ImmersionBar.with(本).keyboardEnable(真).setOnKeyboardListener((isPopup、keyboardHeight) - > { 場合(isPopup){ bottomLayout.setVisibility(View.GONE); } 他{ bottomLayout.setVisibility(View.VISIBLE); } } ).statusBarDarkFont(真).titleBar(R.id.tv_status).INIT();
keyboardEnable(真)このメソッドは、アクティビティのソフトキーボードモード電流をポップアップ表示設定、デフォルトはAdjustResizeです。
大丈夫ことができるように、シンプル、必ずしも実現可能ではないかもしれないが、これは、ビューの独自のポイントページレイアウトを結合する必要があります。
あなたは、コンテナとのノードとしてScrollViewを使用しない場合は、ソフトキーボードは、ソフトキーボードカバーのEditTextを避けるために、あなたは非表示にしたり、上記のパディングやマージンのビューを変更するのEditTextといくつかの他のコントロールを超えることができ、ポップアップしたとき。これは、問題を解決します。
コードは次のようになることがあります。
ImmersionBar.with(本).keyboardEnable(真).setOnKeyboardListener((isPopup、keyboardHeight) - > { 場合(isPopup){ ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams)mTvStatus.getLayoutParams(); layoutParams.topMargin = DisplayUtils.dip2px (20 ); mTvStatus.setLayoutParams(layoutParams); bottomLayout.setVisibility(View.GONE); } 他{ ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams)mTvStatus.getLayoutParams(); layoutParams.topMargin = DisplayUtils.dip2px(50)。 mTvStatus.setLayoutParams(layoutParams)。 bottomLayout.setVisibility(View.VISIBLE)。 } 。})statusBarDarkFont(真).titleBar(R.id.tv_status).INIT();
この問題は、問題とAPIの契約を解かれImmersionBarソフトキーボードは、まだ非常に便利です。