wake-up-neo.net

Vollbild-Design für AppCompat

Ich würde gerne wissen, wie ich ein Vollbild-Thema (keine Titelleiste + keine Aktionsleiste) auf eine Aktivität anwenden kann. Ich verwende die AppCompat-Bibliothek aus dem Support-Paket v7. 

Ich habe versucht, Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen" auf meine spezifische Aktivität anzuwenden, aber es ist abgestürzt. Ich denke es liegt daran, dass mein Anwendungsthema so ist.

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

Ich habe das auch probiert 

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

nur die Titelleiste, aber nicht die Aktionsleiste. Meine aktuelle Problemumgehung besteht darin, dass die Aktionsleiste mit ausgeblendet wird 

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

Wenn Sie Theme.AppCompat in Ihrer Anwendung verwenden, können Sie FullScreenTheme verwenden, indem Sie den folgenden Code zu den Stilen hinzufügen.

<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>

und auch in Ihrer Manifestdatei erwähnen.

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

Basierend auf der Antwort von @nebyan habe ich festgestellt, dass die Aktionsleiste immer noch nicht versteckt ist.

Der folgende Code funktioniert für mich:

<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>

und natürlich nicht vergessen, Ihre AndroidManifest-Datei zu bearbeiten.

<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>

Mit dem obigen XML in style.xml können Sie den Titel sowie die Aktionsleiste ausblenden.

Probleme treten vor und nach Versionen von Android 4.0 (API-Ebene 14) auf.

von hier https://developer.Android.com/training/system-ui/status.html Ich habe meine eigene Lösung erstellt ..

@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();
    }
}

Ich schreibe diesen Code in der onResume () -Methode. Wenn Sie Ihre App beenden und sie dann erneut öffnen, bleibt die Aktionsleiste aktiv! (und so das Problem beheben)

Ich hoffe es war hilfreich;)

9
KrhashisM

Ihre "Problemumgehung" (die Aktionsleiste selbst verbergen) ist der normale Weg. Google empfiehlt jedoch, die ActionBar immer auszublenden, wenn die TitleBar ausgeblendet ist. Schauen Sie hier: 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

Sie können dem folgenden Schritt folgen: -

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);
     }

Ich hoffe es wird helfen. Danke !!

4
jagdish

Es sollte parent = "@ style/Theme.AppCompat.Light.NoActionBar" sein

<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

So entfernen Sie die Titelleiste in 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

nur das ?

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

Sie können folgendes versuchen:

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

Um sowohl die Statusleiste als auch die Aktionsleiste auszublenden und Ihre Aktivität als Vollbild anzuzeigen, verwenden Sie den folgenden Code in der onResume()- oder onWindowFocusChanged()-Methode Ihrer Aktivität:

@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);
}

Weitere Informationen finden Sie unter den folgenden Links:

Note: Mit den in diesem Thread bereitgestellten XML-Lösungen konnte ich nur die Statusleiste ausblenden, nicht jedoch die Navigationsleiste.

0
Darush

Einfach bei diesen Jungs zu deinem Style:

<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

Dieses Thema funktioniert nur nach API 21 (enthalten). Und machen Sie sowohl die Statusleiste als auch die Navigationsleiste transparent.

<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