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();
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"
/>
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"
/>
<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;)
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
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();
}
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 !!
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>
requestWindowFeature(Window.FEATURE_NO_TITLE);
So entfernen Sie die Titelleiste in AppCompat:
@Override
protected void onCreate(Bundle savedInstanceState) {
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
}
<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>
nur das ?
<style name="Theme.AppCompat.Light.NoActionBar.FullScreen">
<item name="Android:windowFullscreen">true</item>
</style>
Sie können folgendes versuchen: :
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="Android:windowFullscreen">true</item>
</style>
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.
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>
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>