ソフトキーボードの問題没入テーマ

免責事項:この記事は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ソフトキーボードは、まだ非常に便利です。

おすすめ

転載: www.cnblogs.com/xing-star/p/11101278.html