67

透明なステータス バーを作成する必要があります。私は使用getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)しており、ステータスバーを好きなようにしています。ただし、ナビゲーション バーにも影響します。透明になり、getWindow().setNavigationBarColor(Color.BLACK)何もしません。

透明なステータス バーのみを作成し、ナビゲーション バーを作成しない方法はありますか?

4

13 に答える 13

37

これは私のために働く

getWindow().setFlags(
    WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
    WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
)

スタイル.xml

<style name="TranslucentStatusBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowTranslucentStatus">true</item>
</style>

v21\styles.xml

<style name="TranslucentStatusBar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowDrawsSystemBarBackgrounds">false</item>
    <item name="android:windowTranslucentStatus">true</item>
</style>

ステータス バーは透明または半透明になりますが、ナビゲーション バーは透明ではありません

お役に立てれば!

于 2018-08-30T08:58:51.890 に答える
11
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
于 2016-11-28T09:06:36.107 に答える
3

このように使用して、ステータスバーとナビゲーションバーを非表示にすることができます

WindowManager.LayoutParams attributes = getWindow().getAttributes();
    attributes.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
    getWindow().setAttributes(attributes);

ナビゲーションバーを再度表示するには、これを使用します

   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

    }

色は私にとって灰色です。多分あなたはそれをあなたの原色に強制することができます

于 2016-02-24T18:44:04.163 に答える
1

私は解決策を見つけました

<style name="transparent" parent="Theme.AppCompat.Light.NoActionBar">//AppCompat is the key; You can choose any other theme than the light-theme, but stick to AppCompat
    <item name="android:windowTranslucentStatus">false</item>
    <item name="android:windowDrawsSystemBarBackgrounds">false</item>
    //Other styling(optional)
</style>

次に、この透過的なテーマをアクティビティ マニフェストに次のように適用します。

 <activity
      ...
      android:theme="@style/transparent"/>
于 2017-07-24T08:03:04.567 に答える