Je peux cacher la barre d'action en nid d'abeille en utilisant ce code:
getActionBar().hide();
Mais lorsque le clavier s'ouvre et que l'utilisateur copie-colle quelque chose, la barre d'action s'affiche à nouveau. Comment puis-je désactiver la barre d'action de manière permanente?
En définissant un thème d'activité dans Manifest,
<activity
Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen"
....
>
Si vous utilisez Theme.Holo.Light
et souhaitez utiliser la variante Theme.Holo.Light.NoActionBar
sur des appareils antérieurs à la version 3.2, vous pouvez l'ajouter à votre styles.xml
:
<style name="NoActionBar" parent="@Android:style/Theme.Holo.Light">
<item name="Android:windowActionBar">false</item>
<item name="Android:windowNoTitle">true</item>
</style>
puis définissez-le comme thème de votre activité:
<activity Android:theme="@style/NoActionBar" ... />
J'utilise le code suivant dans ma fonction onCreate:
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
Source: https://developer.Android.com/guide/topics/ui/actionbar.html
<application
.
.
Android:theme="@Android:style/Theme.Holo.Light.NoActionBar"
. >
peut-être que cela vous aide
Avec la super-classe d'activité générée par défaut de Android Studio, il s'agit de ActionBarActivity
, puis aucune des solutions dans les autres réponses ne fonctionne. Pour résoudre simplement le changement de super-classe:
public class xxxActivity extends ActionBarActivity{
à:
public class xxxActivity extends Activity {
Si vous voulez passer en plein écran sans actionBar ni titre.
Ajoutez-le dans style.xml
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="Android:windowFullscreen">true</item>
</style>
et utilisez le style à manifest.xml.
Android:theme="@style/AppTheme.NoActionBar"
La meilleure façon de trouver des thèmes personnalisés, sans barre d’action, est de créer une SuperClass pour toutes les activités de mon projet. Dans sa fonction onCreate (), appelez la ligne de code suivante -
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
Ça marche toujours pour moi. Le seul problème de cette approche est que vous verrez la barre d’action une fraction de seconde lors du démarrage de l’application (pas l’activité, mais l’app complète).
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
getSupportActionBar().hide();
}
Allez à styles.xml Remplacez cette DarkActionBar par NoActionBar
style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Si vous voulez juste un thème sans barre d’action, vous pouvez utiliser la variante 'NoActionBar', par exemple. si votre thème de base est comme ci-dessous
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
alors vous pouvez utiliser
<style name="AppThemeNoActionBar" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
Mais si vous souhaitez conserver les propriétés de votre thème principal, c'est-à-dire AppTheme, vous pouvez procéder comme suit
<style name="AppThemeNoActionBar" parent="AppTheme">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
Vous pouvez ainsi conserver toutes les propriétés de votre thème de base sans avoir à les ajouter explicitement à votre thème NoActionBar :)
N'utilisez pas le thème Holo et la barre d'action disparaîtra. Ce code fonctionne pour moi sur API 8+, avec le support de lib v7:
<style name="NoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="Android:windowNoTitle">true</item>
</style>
définissez ce thème pour votre activité:
<activity Android:theme="@style/NoActionBar" ... />
et dans votre classe d'activité.
Cela fonctionne même lorsqu'il étend ActionBarActivity.
Heres une solution rapide.
Vous trouvez styles.xml et vous modifiez le thème de l'application de base en "Theme.AppCompat.NoActionBar" comme indiqué ci-dessous.
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<!-- Customize your theme here. -->
</style>
Sous res -> valeurs -> styles.xml
changement
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
À
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Vous pouvez forcer masquer la barre d'action simplement:
ActionBar actionbar = getSupportActionBar();
actionBar.hide();
Utilisez simplement votre thème par défaut.
Tapez ce code dans votre méthode onCreate
avant setContentView
:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 0);
Voici les étapes à suivre pour masquer la barre d’action de manière permanente:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
.Remplacez maintenant le parent par tout autre thème contenant "NoActionBar" dans son nom.
une. Vous pouvez également vérifier l'aspect d'un thème en basculant sur l'onglet Création du fichier activity_main.xml, puis en essayant chaque thème fourni dans la liste déroulante des thèmes de l'interface utilisateur.
Si votre MainActivity s'étend AppCompatActivity, assurez-vous d'utiliser un thème AppCompat.
J'aimerais plutôt publier une approche de concepteur à ce sujet, cela gardera le design séparé de votre logique métier:
Étape 1. Créez un nouveau style dans (res-> valeurs-> styles.xml): il s’agit d’une copie de votre schéma global avec un parent différent - parent = "Theme.AppCompat.Light.NoActionBar"
<!-- custom application theme. -->
<style name="MarkitTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="Android:windowNoTitle">true</item>
</style>
Étape 2: dans votre fichier AndroidManifest.xml, ajoutez ce thème à l'activité souhaitée: par exemple. Je veux mon activité principale sans barre d’action alors ajoutez ceci comme ci-dessous:
<activity Android:name=".MainActivity"
Android:theme="@style/MarkitTheme">
C'est la meilleure solution pour moi après avoir essayé beaucoup de choses.
Assurez-vous de créer un nouveau thème en modifiant le nom du thème par défaut dans le fichier styles.xml
en:
<style name="MyTheme" parent="Android:Theme.Material.Light.NoActionBar">
et que changer le thème de la liste déroulante sous votre main_activity.xml
à celui que vous avez appelé votre thème.
essayez ceci dans votre manifestiste
<activity
Android:name=".MainActivity"
Android:theme="@Android:style/Theme.Holo.NoActionBar"
Android:label="@string/app_name" >
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Android.support.v7.app.ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.hide();
}
setContentView(R.layout.activity_main);
Il existe deux manières de désactiver ActionBar
dans Android.
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
Une autre solution intéressante dans laquelle vous souhaitez conserver ViewPager tout en supprimant la barre d’action est d’avoir un style identique à celui indiqué.
<style name="AppTheme" parent="AppBaseTheme">
<item name="Android:windowActionBarOverlay">true</item>
<item name="Android:actionBarStyle">@style/NoActionBarStyle</item>
<item name="Android:windowContentOverlay">@null</item>
</style>
<style name="NoActionBarStyle" parent="Android:Widget.Holo.ActionBar">
<item name="Android:backgroundSplit">@null</item>
<item name="Android:displayOptions"></item>
</style>
C’est ainsi que la plupart des applications de numérotation dans Android affichent ViewPager sans la barre d’action.
Réf.: https://github.com/CyanogenMod/Android_packages_apps_Dialer
dans la fonction onCreate, ajoutez le code suivant
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
et importez simplement Android.support.v7.app.ActionBar
J'utilise cette solution:
dans le manifeste, dans votre balise d'activité:
Android:label="@string/empty_string"
et dans strings.xml:
<string name="empty_string">""</string>
De cette façon, vous conservez ActionBar (ou barre d'outils) avec le titre, mais lorsque Activity est créé, le titre est automatiquement vide.
Curieusement, aucune de ces solutions n’a fonctionné pour moi lors de la construction d’un Nexus 7 sous 4.4.2 (API 19). Pour la plupart, du moins avec la dernière version de Android Studio (1.2.1.1) après la création d'une application d'activité vide, le:
Android: theme = "@ style/AppTheme"
est dans l'élément d'application, pas l'élément d'activité. Si j'ai supprimé le code ci-dessus ou essayé de le changer en:
Android: theme = "@ Android: style/Theme.Holo.Light.NoActionBar"
l'application ne s'exécutera pas ... si cela vous arrive, allez dans votre fichier styles.xml (res> values> styles.xml) et ajoutez le .NoTitleBar à la fin du parent comme ce bloc:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>
Aucune modification du fichier AndroidManifest n'est nécessaire.