web-dev-qa-db-ja.com

AppCompatのフルスクリーンテーマ

フルスクリーンテーマ(タイ​​トルバーなし、アクションバーなし)をアクティビティに適用する方法を知りたいサポートパッケージv7のAppCompatライブラリを使用しています。

特定のアクティビティにAndroid:theme="@Android:style/Theme.NoTitleBar.Fullscreen"を適用しようとしましたが、クラッシュしました。私のアプリケーションのテーマはこのようなものだからだと思います。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

私もこれを試しました

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

これはタイトルバーを隠し、アクションバーは隠しません。私の現在の回避策はでアクションバーを隠すことです。

getSupportActionBar().hide();
280
Ye Lin Aung

アプリケーションでTheme.AppCompatを使用するときは、以下のコードをスタイルに追加することによってFullScreenThemeを使用できます。

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light.NoActionBar">
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowActionBar">false</item>
    <item name="Android:windowFullscreen">true</item>
    <item name="Android:windowContentOverlay">@null</item>
</style>

また、マニフェストファイルにも記載してください。

<activity
   Android:name=".activities.FullViewActivity"
   Android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen" 
/>
779
nebyan

@nebyanの回答によると、アクションバーはまだ隠れていないことがわかりました。

次のコードは私のために働きます:

<style name="AppFullScreenTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowActionBar">false</item>
    <item name="Android:windowFullscreen">true</item>
    <item name="Android:windowContentOverlay">@null</item>
</style>

そしてもちろんあなたのAndroidManifestファイルを編集するのを忘れないでください。

<activity
    Android:name="YOUR_ACTIVITY_NAME"
    Android:theme="@style/AppFullScreenTheme" 
/>
62
Hover Ruan
<style name="Theme.AppCompat.Light.NoActionBar" parent="@style/Theme.AppCompat">
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowFullscreen">true</item>
</style>

Style.xmlで上記のxmlを使用すると、タイトルとアクションバーを隠すことができます。

Android 4.0(APIレベル14)の前後のバージョン間で問題が発生します。

from here 私は自分で解決策を作りました。

@SuppressLint("NewApi")
@Override
protected void onResume()
{
    super.onResume();

    if (Build.VERSION.SDK_INT < 16)
    {
        // Hide the status bar
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        // Hide the action bar
        getSupportActionBar().hide();
    }
    else
    {
        // Hide the status bar
        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
        / Hide the action bar
        getActionBar().hide();
    }
}

このコードはonResume()メソッドで記述します。アプリを終了してから再度開くと、アクションバーがアクティブのままになるためです。 (そしてこれで問題は解決します)

参考になれば幸いです。

9
KrhashisM

あなたの "回避策"(アクションを隠す)は普通の方法です。しかし、Googleでは、TitleBarが非表示になっているときは常にActionBarを非表示にすることをお勧めします。ここで見てみましょう: https://developer.Android.com/training/system-ui/status.html

6
Simulant
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //to remove "information bar" above the action bar
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    //to remove the action bar (title bar)
    getSupportActionBar().hide();
}
6
Shuyan Ji

あなたは以下のステップに従うことができます: -

AndoridMenifest.xml

<activity
            Android:name=".ui.FullImageActivity"
            Android:label="@string/title_activity_main"
            Android:screenOrientation="landscape"
            Android:theme="@style/DialogTheme">
        </activity>

Style.xml

<style name="DialogTheme" parent="Android:Theme.Dialog">

    <item name="Android:layout_width">fill_parent</item>
    <item name="Android:layout_height">fill_parent</item>

   <!-- No backgrounds, titles or window float -->
    <item name="Android:windowNoTitle">false</item>
    <item name="Android:windowFullscreen">true</item>
    <item name="Android:windowIsFloating">false</item>
</style>

FullImageActivity.Java

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
    setContentView(R.layout.image_view);
     }

お役に立てば幸いです。

4
jagdish

parent = "@ style/Theme.AppCompat.Light.NoActionBar" にする必要があります

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" 
parent="@style/Theme.AppCompat.Light.NoActionBar">
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowActionBar">false</item>
    <item name="Android:windowFullscreen">true</item>
    <item name="Android:windowContentOverlay">@null</item>
</style>
2
vntstudy
requestWindowFeature(Window.FEATURE_NO_TITLE);
1
prashantwosti

AppCompatのタイトルバーを削除するには

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
    }
0
Andoctorey
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="Android:windowFullscreen">true</item>
<item name="Android:windowContentOverlay">@null</item>
0
Matt Barrera

これだけ?

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen">
    <item name="Android:windowFullscreen">true</item>
</style>
0
Xan

次のことを試すことができます

<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
            <item name="Android:windowFullscreen">true</item>
</style>
0
Sumit Shukla

ステータスバーとアクションバーの両方を非表示にしてアクティビティをフルスクリーンにするには、アクティビティのonResume()メソッドまたはonWindowFocusChanged()メソッドで次のコードを使用します。

@Override
protected void onResume() {
    super.onResume();
    View decorView = getWindow().getDecorView();
    decorView.setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_FULLSCREEN);
}

次のリンクに詳細情報があります。

注: このスレッドで提供されているxmlソリューションを使用すると、ステータスバーのみを非表示にでき、ナビゲーションバーを非表示にすることができます。

0
Darush

単にあなたのスタイルにこの男で。

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="Android:windowFullscreen">true</item>
<item name="Android:windowContentOverlay">@null</item> </style>
0
Reza Hamzehie

このテーマは、API 21(付属)以降でのみ機能します。そして、StatusBarとNavigationBarの両方を透明にします。

<style name="TransparentAppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
  <item name="windowActionBar">false</item>
  <item name="windowNoTitle">true</item>
  <item name="Android:statusBarColor">@Android:color/transparent</item>
  <item name="Android:windowBackground">@Android:color/transparent</item>
  <item name="Android:navigationBarColor">@Android:color/transparent</item>
  <item name="Android:windowIsTranslucent">true</item>
  <item name="Android:windowContentOverlay">@null</item>
</style>
0
DysaniazzZ