1. ホーム
  2. アンドロイド

[解決済み】Android ステータスバーが完全に透明化?

2022-04-04 08:34:08

質問

を検索してみました。 ドキュメント が、これしか見つからなかった。 リンク . これは、バーを作るために使用される 半透明 ? 私がやろうとしていることは、ステータスバーを 完全に透明 (下の画像のように)そして、APK<19の後方互換性を持たせる。

私のstyles.xmlです。

<resources xmlns:tools="http://schemas.android.com/tools">

  <style name="AppTheme" parent="Theme.AppCompat.Light">
  <item name="android:actionBarStyle">@style/ThemeActionBar</item>
  <item name="android:windowActionBarOverlay">true</item>
  <!-- Support library compatibility -->
  <item name="actionBarStyle">@style/ThemeActionBar</item>
  <item name="windowActionBarOverlay">true</item>
  </style>

  <style name="ThemeActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid">
  <item name="android:background"> @null </item>
  <!-- Support library compatibility -->
  <item name="background">@null</item>
  <item name="android:displayOptions"> showHome | useLogo</item>
  <item name="displayOptions">showHome|useLogo</item>

  </style>

</resources>

できたこと

解決方法は?

これらのプロパティをテーマに設定するだけです。

<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>

ステータスバーを透明にしたいアクティビティ/コンテナレイアウトは、このプロパティを設定する必要があります。

android:fitsSystemWindows="true"

一般にkitkat以前では確実に実行できない、できるように見えるのは が、変なコードで .

EDIT: このリブをお勧めします。 https://github.com/jgilfelt/SystemBarTint ロリポップ前のステータスバーの色を制御することができます。

ロリポップのステータスバーやナビゲーションバーの半透明や色を完全に無効にするには、ウィンドウにこのフラグを設定すればいいことがわかりました。

// In Activity's onCreate() for instance
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    Window w = getWindow();
    w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}

他のテーマ付けは必要なく、このようなものが出来上がります。