web-dev-qa-db-ja.com

Android-アクティビティをフルスクリーンにし、その上にステータスバーを表示します

次の図のように、ステータスバーを上部に表示して、アクティビティをフルスクリーンにしたいと思います。

enter image description here

manifestタグ内のactivityでこのコードを使用しました:

'Android:theme="@style/Theme.AppCompat.Light.NoActionBar"'

しかし、私の見解はステータスバーから始まりません、そして、それはこのように見えます:

enter image description here

activityを最初のようにするにはどうすればよいですか?

28
Utshaw

私は質問をする人が彼自身の解決策を見つけたかもしれないことを知っていますが、まだ解決策を探している人にとってこれは非常に簡単な解決策ですが、一つのことはKitKatまで制限があります

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KitKat) {

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
                      WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
40

これらをBase Application Theme in styles.xmlに追加します

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

そして、親レイアウトに次の属性を追加します。

Android:fitsSystemWindows="true"

お役に立てれば。

25
tahsinRupam

「半透明のナビゲーション」を透明にしたくない場合は、次のコードを使用しますステータスバーを透明にする

あなたのテーマ:

    <item name="Android:statusBarColor">@Android:color/transparent</item>
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowTranslucentStatus">true</item>

OnCreateのアクティビティ:

Window window = getWindow();
WindowManager.LayoutParams winParams = window.getAttributes();
winParams.flags &= ~WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
window.setAttributes(winParams);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
10
Pablo Cegarra

onCreateの後にこのコードを使用できます

   setTheme(Android.R.style.Theme_Black_NoTitleBar_Fullscreen);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        if (getSupportActionBar() != null) {
            getSupportActionBar().hide();
        }

あなたの活動はステータスバーでフルスクリーンになります:)

1

@ tahsinRupam回答は正しいものであり、キットカット後のバージョンでテストされています。

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

特定のアクティビティにのみ使用する場合は、スタイルを作成し、このようにマニフェストスタイルに添付します。

<activity
    Android:name=".MainActivity"
    Android:screenOrientation="portrait"
    Android:theme="@style/Activity.Fullscreen.Theme" />

<style name="Activity.Fullscreen.Theme" parent="MyMaterialTheme.Base">  
    <item name="Android:windowTranslucentStatus">true</item>
    <item name="Android:windowTranslucentNavigation">true</item>
</style>

オリジナルの@ tahsinRupamに賛成

ハッピーコーディング

0
ralphgabb

これを試してみてください

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

これが役立つことを願って

0
Sumaniya Alabha