Thème Android.NoTitleBar doesnot travail
Je suis d'avoir un facebook comme le glissement de la barre de menu de mon application dans laquelle le contenu et la page principale de l'application est gérée par une mise en page Personnalisée de classe.
Je veux enlever la barre de titre d'une de mes applications
Question:
Même si je place
android:Thème.La lumière.NoTitleBar
dans mon manifeste il y a un espace vide de la barre de titre. En raison de qui toute ma mise en page est poussé vers le bas.
J'ai essayé d'utiliser
requestWindowFeature(Fenêtre.FEATURE_NO_TITLE);
et
getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
mais encore la barre de titre de l'espace n'est pas supprimé.
C'est la façon dont l'application ressemble à
Je pense que cela est dû en raison de la Coutume LinearLayout classe qui détient la principale coulissantes mise en page. Mais je suis incapable de supprimer la barre de titre de l'espace de la mise en page personnalisée de la classe.
Proposer une meilleure solution.
Mise En Page Personnalisée De Classe
public class MainLayout extends LinearLayout {
public MainLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MainLayout(Context context) {
super(context);
}
//Overriding LinearLayout core methods
//layout based on the children
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mainLayoutWidth = MeasureSpec.getSize(widthMeasureSpec);
menuRightMargin = mainLayoutWidth * 10 / 100;
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
menu = this.getChildAt(0);
content = this.getChildAt(1);
content.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return MainLayout.this.onContentTouch(v, event);
}
});
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
if(changed) {
LayoutParams contentLayoutParams = (LayoutParams)content.getLayoutParams();
contentLayoutParams.height = this.getHeight();
contentLayoutParams.width = this.getWidth(); LayoutParams menuLayoutParams = (LayoutParams)menu.getLayoutParams();
menuLayoutParams.width = this.getWidth() - menuRightMargin;
}
menu.layout(left, top, right - menuRightMargin, bottom);
content.layout(left + contentXOffset, top, right + contentXOffset, bottom);
}
}
- vous mettre en page personnalisée de classe ici
- Si votre recherche dans la Fenêtre de prévisualisation, il doit quand même y était. Il ne prendra effet que lorsque le Java est exécuté ainsi, lorsque vous l'utilisez sur votre téléphone ou un émulateur.
- il semble que le même dispositif et l'émulateur avec un espace blanc dans la barre de titre
- je vais mettre de l'agencement personnalisé de classe peu de temps
- ici c'est le code de la classe
Vous devez vous connecter pour publier un commentaire.
u peut spécifier directement dans le fichier manifeste de l'activité
Finalement j'ai réussi à enlever la barre de titre de l'espace.
Comme il s'avère, y compris cette balise
sur l'application dans le manifeste du fait de l'application en plein écran et corrigé le problème. Mais je voulais la barre d'état pour être visible dans mon application.
J'ai donc du compromis la barre d'état sur les versions d'android dans lequel la barre de titre de l'espace n'a pas été réduite et que ce soit le même sur les autres versions.
Donc, voici comment je l'ai résolu.
dans le Manifeste, j'ai gardé le code comme il est
pour supprimer la barre de titre de l'application
et à l'activité qui a utilisé la coutume linéaire de la mise en page j'ai vérifié la version android et gardé l'application en plein écran sur les versions inférieures et égales à pain d'épice.
Essayez ceci dans votre fichier manifeste
Ajouter le android:thème de la propriété à votre AndroidManifest.xml:
Espère que cela peut vous aider.
Il semble que
Theme.NoTitleBar
ne fonctionne que lorsqu'il est appliqué à l'ensemble de l'application, et non l'activité elle-même. Afin de le mettre dans la balise application (dans le manifeste):Ensuite, ajoutez un style personnalisé à chaque activité.
Espère que cela aide.
Dans value\style.xml
définir un nom et thèmes
e.g,
Then goto votre androidmainfest.xml
ajouter au sein de l'activité comme..
android:thème="@style/NoActionBar"