J'ai développé une application de démonstration simple avec un écran de démarrage, une carte et quelques écrans réguliers.
J'ai une barre d'action en haut qui contient un logo. Tout va bien sur mon téléphone (Galaxy s1 I9000 V2.3) mais lorsque je le teste sur Galaxy s2 v4, la barre d'action apparaît également sur l'écran de démarrage et sur l'écran de la carte.
L'activité spalsh et map n'hérite même pas d'ActionBarActivity, alors comment est-ce possible et comment puis-je la faire disparaître?
Manifeste:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:theme="@style/Theme.AppCompat.Light" >
<activity
android:name=".HomeActivity"
android:icon="@drawable/android_logo"
android:label=""
android:logo="@drawable/android_logo" >
<!--
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
-->
</activity>
<activity
android:name=".MapActivity"
android:label="" >
</activity>
<activity
android:name=".PackageActivity"
android:icon="@drawable/android_logo"
android:label=""
android:logo="@drawable/android_logo" >
</activity>
<activity
android:name=".SplashActivity"
android:label="" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Définition de MapActivity (c'est une longue, donc je n'ai inclus que la définition):
public class MapActivity extends FragmentActivity implements LocationListener
Activité Splash:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
public class SplashActivity extends Activity{
private static final long SPLASH_DISPLAY_LENGTH = 2000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
Intent mainIntent = new Intent(SplashActivity.this,HomeActivity.class);
SplashActivity.this.startActivity(mainIntent);
SplashActivity.this.finish();
}
}, SPLASH_DISPLAY_LENGTH);
}
}
getActionBar
car l'activité n'hérite pas deActionBarActivity
<item name="android:windowActionBar">false</item>
cela ne le cacherait-il pas sur tous les écrans?Lorsque vous demandez comment vous cacher dans une certaine activité , voici ce dont vous avez besoin:
la source
Accédez à votre
manifest.xml
dossier.2.
Find
leactivity tag
pour lequel vous souhaitez masquer votre ActionBar, puisadd
,la source
Si vous voulez obtenir le plein écran sans actionBar et Title.
Ajoutez-le dans style.xml
et utilisez le style at activity de manifest.xml.
la source
Le
ActionBar
existe généralement le long deFragments
sorte queActivity
vous pouvez le cacheret à partir du
Fragment
tu peux le fairela source
getSupportActionBar().hide();
dans ActionBarActivitySi vous utilisiez Theme.AppCompat.Light, un meilleur équivalent serait Theme.AppCompat.Light.NoActionBar.
J'ai constaté que l'utilisation de Theme.AppCompat.NoTitleBar rendait le texte de mon bouton invisible, donc j'utilise Theme.AppCompat.Light.NoActionBar.
la source
Cela fonctionne pour moi! Mettez ceci dans votre activité dans les manifestes
Vous pouvez également créer votre thème personnalisé dans styles.xml comme ceci:
J'espère que cette aide.
la source
Vous pouvez utiliser le mode Low Profile Voir ici
Il suffit de rechercher
SYSTEM_UI_FLAG_LOW_PROFILE
qui assombrit également les boutons de navigation s'ils sont présents sur l'écran.la source
Les réponses ci-dessus aideraient avec la chose ActionBar. Pour y ajouter, utilisez le code suivant au cas où vous utilisez l'écran de démarrage: Utilisez ceci avant de définir l'affichage du contenu:
Juste pour clarifier, voici comment procéder:
Cela ferait de votre écran un plein écran, c'est-à-dire supprimer la barre supérieure où vous voyez la barre réseau, etc.
la source
Appliquez ce qui suit dans votre thème pour l'activité dans AndroidManifest.xml:
Appliquez ensuite ce qui suit dans votre style dans style.xml
la source
// Cachez l'ActionBar en haut
// Ajoute ce code dans le fichier java
la source
Cela fonctionne dans l'API 27
Dans le styles.xml, remplacez le code par ce qui suit ...
Ensuite, dans les fichiers (par exemple, activity_list.xml) dans lesquels vous voulez avoir une barre d'outils, mettez le code suivant.
Si vous rencontrez des problèmes, passez à la mise en page linéaire (car c'est sur quoi ce code est testé)
la source
D' ici :
Une option consiste donc à désactiver complètement ActionBar (dans le fichier manifest.xml de l'application), puis à ajouter la barre d'outils dans chaque page nécessitant une ActionBar.
(suivez le lien ci-dessus pour une explication étape par étape)
la source
Remplacer AndroidManifest.xml
à
la source
Ajoutez un nouveau style dans votre style.xml
puis ajoutez la ligne suivante dans votre manifeste
la source
Vérifiez l'attribut de remplissage si le problème persiste après le changement de thème.
Problème de remplissage créant un espace blanc au-dessus de la fenêtre de fragment / fenêtre d'application
Une fois que vous supprimez le remplissage - valeur supérieure automatiquement, l'espace blanc est supprimé.
la source