Androidの前髪は、画面の適応----- ImmersionBar

アンドロイド4.4と没入ステータスバー没入型ナビゲーション管理上、適応は、ソフトキーボードがポップアップし、他の問題は、あなたがステータスバーのフォントの色やナビゲーションバーアイコンの色、フォントの色を変更することができますし、電話アダプタを変更することはできません画面、前髪画面を切り替える必要がありました活動のため、断片、DialogFragment、ダイアログ、PopupWindow。

  1. 導入

    // 基盤の依存関係は、依存しなければならない ':immersionbar:com.gyf.immersionbar 3.0.0'実装を// フラグメントはすぐに(別売)を実装する 実装':immersionbar-コンポーネント:com.gyf.immersionbar 3.0.0'を// kotlin拡張(オプション)実装「com.gyf.immersionbar:immersionbar-KTX :3.0.0
  2. 前髪を備えた包括的な画面

    アプリケーションノードは①マニフェストに追加され

    <メタデータは
         アンドロイド:名 = "android.max_aspect" 
         アンドロイド:値 = "2.4" />

     

    ②のアプリケーションノードマニフェストに追加

    アンドロイド:resizeableActivity = "true" を

     

    アプリケーションノードは③マニフェストに追加されます

     アンドロイド:maxAspectRatio = "2.4"

     

    ④targetSdkVersion 25以降にアップグレード

  3. 前髪画面について

    アプリケーションノードにおいてインビボ、マニフェストとなし構成情報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

         

        で:ヤン

         

 

おすすめ

転載: www.cnblogs.com/widgetbox/p/11959436.html