アンドロイド4.4と没入ステータスバー没入型ナビゲーション管理上、適応は、ソフトキーボードがポップアップし、他の問題は、あなたがステータスバーのフォントの色やナビゲーションバーアイコンの色、フォントの色を変更することができますし、電話アダプタを変更することはできません画面、前髪画面を切り替える必要がありました活動のため、断片、DialogFragment、ダイアログ、PopupWindow。
- 導入
// 基盤の依存関係は、依存しなければならない ':immersionbar:com.gyf.immersionbar 3.0.0'実装を// フラグメントはすぐに(別売)を実装する 実装':immersionbar-コンポーネント:com.gyf.immersionbar 3.0.0'を// kotlin拡張(オプション)実装「com.gyf.immersionbar:immersionbar-KTX :3.0.0 -
前髪を備えた包括的な画面
アプリケーションノードは①マニフェストに追加され
<メタデータは アンドロイド:名 = "android.max_aspect" アンドロイド:値 = "2.4" />
②のアプリケーションノードマニフェストに追加
アンドロイド:resizeableActivity = "true" を
アプリケーションノードは③マニフェストに追加されます
アンドロイド:maxAspectRatio = "2.4"
④targetSdkVersion 25以降にアップグレード
-
前髪画面について
アプリケーションノードにおいてインビボ、マニフェストとなし構成情報FOUND OPPOに参加
<! - -華為(HUAWEI)前髪画面を適応> <メタデータ :名前アンドロイド = "android.notch_support" :Androidの値 = "trueに" /> <! -適応キビ(小米科技)前髪画面- - > <メタデータ アンドロイド:名 = "notch.config" アンドロイド:値 = "ポートレート|風景" />
使い方
初期化
-
基本的な使い方(すでに毎日浸漬を満たします)
ImmersionBar.with(この).INIT();
-
高度な使用方法(各パラメータの意味)
ImmersionBar.with(この) .transparentStatusBar() // 透明のステータスバーに、デフォルト透明色書き込みません .transparentNavigationBar() // 透明のナビゲーションバー、デフォルトの黒を書きません(自動的にtrueにこの方法を設定するフルスクリーン()メソッド)を .transparentBar () // 透明状態とナビゲーションバー、デフォルト透明色でステータスバーを書いていない、黒のナビゲーションバー(この方法を設定するフルスクリーン()メソッドに自動的にtrueに) .statusBarColor(R.color.colorPrimary) // ステータスバー色は、デフォルト透明色書き込みません .navigationBarColor(R.color.colorPrimary)// 、ナビゲーションバーの色をデフォルトの黒書き込みません .barColor(R.color.colorPrimaryを) // カスタムステータスバーとナビゲーションバーの色は、書き込みデフォルトを入れないでくださいステータスバーが透明で、ナビゲーションバーが黒 .statusBarAlpha(0.3F) // ステータスバーの透明度、デフォルトは0.0fを書きません .navigationBarAlpha(0.4F) // ナビゲーションバーの透明度は、デフォルト0.0F書き込みません .barAlpha(0.3F) // ステータスとナビゲーションバーの透明性を、0.0fをデフォルト書き込みません (.statusBarDarkFont trueにする) // ステータスバーが暗いフォントです、デフォルトを書かない明るいです .navigationBarDarkIcon(trueに)// ナビゲーションバーのアイコンが暗い、デフォルトを書かない明るいです .autoDarkModeEnable(trueに)// 自動ナビゲーションバーとステータスバーのアイコンフォントの色、あなたはステータスバーの色やナビゲーションバーを指定する必要があります。色が自動的に色ああ変更することができます .autoStatusBarDarkModeEnable(trueに、0.2F)// 自動ステータスバーのフォントの色を、あなたは、ステータスバーの色を指定する必要があり、自動的に色ああ変更することができます .autoNavigationBarDarkModeEnable(trueに、0.2F)を//自動ナビゲーションバーアイコンの色は、あなたが自動的に色ああ変更することができ、ナビゲーションバーの色を指定する必要があります .flymeOSStatusBarFontColor(R.color.btn3)を // 修正flyme OSのステータスバーのフォント色 (.fullScreen trueに) // 状況のナビゲーションバーの下に、活動の全画面表示、その活動は、下部のナビゲーションバーで覆われ、表示され、デフォルト以外の全画面表示書き込みません .hideBar(BarHide.FLAG_HIDE_BARを) //は、ステータスバーやナビゲーションバーを非表示、またはその両方が、デフォルトが隠されていない書き込みません .addViewSupportTransformColor(ツールバー) // セットのサポートカラービューは、何色が指定されていないビューの複数を添加することができる、デフォルトのステータスバー、同じ色、2つのオーバーロードされた方法がある .titleBar(ビュー) // 解決オーバーラップレイアウトステータスバーと、任意に1つ .titleBarMarginTop(ビュー) // ステータスバーを解決し、問題を重複レイアウト、いずれかを選択 .statusBarView(ビュー) // ステータスバーやレイアウトの重複の問題を解決するため、いずれかを選択 .fitsSystemWindows(真に) // )、ステータスバーやレイアウトの重複の問題を解決するものを選択し、デフォルトはfalseで、statusBarColorがtrueの場合(指定していることを確認し、そうでない場合は、ステータスバーが透明であり、オーバーロードされたメソッドがあります .supportActionBar (真の)// サポートアクションバーの使用 .statusBarColorTransform(R.color.orange) // ステータスバーの色色の後 .navigationBarColorTransform(R.color.orange)// ナビゲーションバーの変色の色 .barColorTransform(R.color.orange ) // ステータスバーとナビゲーションバーの色のカラー .removeSupportView(ツールバー) //が指定されたビューのサポートを削除し .removeSupportAllViewを()// すべてのビューのサポート削除 .navigationBarEnableを(trueに) // あなたは、デフォルトはtrueナビゲーションバーの色を変更できるかどうか .navigationBarWithKitkatEnable(真の) // ができます私は修正のAndroid 4.4とemui3.1モバイルナビゲーションバーの色、trueにデフォルト .fixMarginAtBottom(真の) // 時代遅れ、ときXML使用中のアンドロイド:fitsSystemWindowsは=「true」属性は、携帯電話の4.4 emui3.1底に対処するために、時には余分な空白の問題が発生した場合、デフォルトでは、非必須falseです .addTag(「タグ」) // マーキング上記のパラメータを設定します .getTag(「タグ」) // タグパラメータが没入得係る .RESET() // 没入パラメータにリセット (.keyboardEnable trueには) // 衝突の底部とソフトキーボード入力ボックスを解決するため、デフォルトが、偽あなたは、ソフトキーボードモードを指定することができますオーバーロードされたメソッド、 .keyboardMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) // 別のソフトキーボードモードを指定 .setOnKeyboardListener(新しい新しい OnKeyboardListenerを(){ // ソフトキーボードコールバックリスナー @Override 公共 のボイド onKeyboardChange(ブール isPopUp、int型keyboardHeight){ LogUtils.e(isPopUp)。 // isPopUp真は、ソフトキーボードがポップアップ、偽、ソフトキーボードの近くにあります } }) の.init(); //は浸漬前に呼び出さなければなりません
閉じる破壊されました
-
OnDestroy活性は、方法で行います
ImmersionBar.with(この).destroyは(); // メモリリークを防ぐために、このメソッドを呼び出す必要があります
提案
-
私たちは、BaseActivityに初期化と破壊をお勧めします
パブリック クラス BaseActivity 拡張AppCompatActivity { @Overrideは、 保護された 空のonCreate(@NullableバンドルsavedInstanceState){ スーパー.onCreate(savedInstanceState); // すべてのサブクラスは、インタフェース設定した後、これらの同じ属性を継承します (ImmersionBar.withを本) .INIT(); } @Overrideは、 保護された 無効onResume(){ スーパー; .onResumeを() // 非必須プラス // 、あなたのアプリが、とにかく画面を切り替えることができた場合は、適応Huawei社emui3シリーズ電話システムを、そしてnavigationBarWithEMUI3Enableは本当です //:(3、真のようnavigationBarWithEMUI3Enable 1、水平および垂直方向の画面を切り替えることができます; 2、Huawei社emui3シリーズ電話システム同時に満たすの三つの条件がコードのみああを追加する必要があります)にonResumeメソッドでこのコードを追加してください 。// そうでない場合は無視され ている場合(OSUtils.isEMUI3_x()){ ImmersionBar.with(本).INIT(); } } @Overrideが 保護 ボイドonDestroyを(){ スーパー.onDestroy(); //は、メモリリークを防ぐために、このメソッドを呼び出す必要があり (ImmersionBar.withをこの).destroy(); } @Overrideは、 保護された ボイドonConfigurationChanged(構成newconfigに保存){ スーパー(newconfigに保存).onConfigurationChanged; // 非必須プラス // あなたのアプリケーションは、とにかく画面を切り替えることができる場合、trueにとしての適応または4.4 Huawei社emui3.1電話システム、およびnavigationBarWithKitkatEnableは、 // メソッドに次のコードを追加することを確認してくださいonConfigurationChanged (三つの条件がコードだけああ追加する必要が同時に満たす:1を、水平方向および垂直方向の画面を切り替えることができる; 2、android4.4 Huawei社emui3.1システムや携帯電話3、navigationBarWithKitkatEnable真のような) // そうでない場合は無視 ImmersionBar.with(これを).INIT(); } }
デモをダウンロード:https://github.com/gyf-dev/ImmersionBar
で:ヤン
-
-