Mise à jour: dernier modèle ActionBar (titre):
Pour info, ActionBar a été introduit dans l'API niveau 11. ActionBar est une fonction de fenêtre en haut de l'activité qui peut afficher le titre de l' activité , les modes de navigation et d'autres éléments interactifs comme la recherche.
Je me souviens exactement de la personnalisation de la barre de titre et de sa cohérence dans l'application. Je peux donc faire une comparaison avec les jours précédents et énumérer certains des avantages de l'utilisation d'ActionBar:
- Il offre à vos utilisateurs une interface familière à travers les applications que le système adapte avec élégance pour différentes configurations d'écran.
- Les développeurs n'ont pas besoin d'écrire beaucoup de code pour afficher le titre de l'activité, les icônes et les modes de navigation car ActionBar est déjà prêt avec une abstraction de haut niveau.
Par exemple:
=> Voie normale,
getActionBar().setTitle("Hello world App");
getSupportActionBar().setTitle("Hello world App"); // provide compatibility to all the versions
=> Personnalisation de la barre d'actions,
Par exemple:
@Override
public void setActionBar(String heading) {
// TODO Auto-generated method stub
com.actionbarsherlock.app.ActionBar actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.title_bar_gray)));
actionBar.setTitle(heading);
actionBar.show();
}
Styliser la barre d'action:
L'ActionBar vous offre des looks de base et familiers, des modes de navigation et d'autres actions rapides à effectuer. Mais cela ne signifie pas que cela ressemble à chaque application. Vous pouvez le personnaliser selon vos exigences d'interface utilisateur et de conception. Il vous suffit de définir et d'écrire des styles et des thèmes.
En savoir plus sur: Styling the Action Bar
Et si vous souhaitez générer des styles pour ActionBar, cet outil Générateur de styles peut vous aider.
================================================== ===============================
Vieux: jours précédents:
=> Voie normale,
vous pouvez modifier le titre de chaque écran (c.-à-d. activité) en définissant leur Android:label
<activity android:name=".Hello_World"
android:label="This is the Hello World Application">
</activity>
=> Personnalisé - Titre - barre
Mais si vous souhaitez personnaliser la barre de titre à votre manière, c'est Want to put Image icon and custom-text
-à- dire que le code suivant fonctionne pour moi:
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
titlebar.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="400dp"
android:layout_height="fill_parent"
android:orientation="horizontal">
<ImageView android:id="@+id/ImageView01"
android:layout_width="57dp"
android:layout_height="wrap_content"
android:background="@drawable/icon1"/>
<TextView
android:id="@+id/myTitle"
android:text="This is my new title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="@color/titletextcolor"
/>
</LinearLayout>
TitleBar.java
public class TitleBar extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final boolean customTitleSupported =
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
if (customTitleSupported) {
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
R.layout.titlebar);
}
final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
if (myTitleText != null) {
myTitleText.setText("NEW TITLE");
// user can also set color using "Color" and then
// "Color value constant"
// myTitleText.setBackgroundColor(Color.GREEN);
}
}
}
strings.xml
Le fichier strings.xml est défini sous le values
dossier.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Set_Text_TitleBar!</string>
<string name="app_name">Set_Text_TitleBar</string>
<color name="titlebackgroundcolor">#3232CD</color>
<color name="titletextcolor">#FFFF00</color>
</resources>
Vous pouvez définir le libellé de chaque activité dans votre fichier manifeste.
Une définition normale d'une activité ressemble à ceci:
Où le texte du titre doit être remplacé par l'id d'une ressource de chaîne pour cette activité.
Vous pouvez également définir le texte du titre à partir du code si vous souhaitez le définir dynamiquement.
avec cette ligne, le titre est défini sur la ville d'une adresse spécifique dans la méthode oncreate de mon activité.
la source
Vous pouvez définir votre titre par programmation à l'aide
setTitle
de votreActivity
, cette méthode peut accepter soit unString
ou un ID défini dans votrevalues/strings.xml
fichier. Exemple:la source
Nous pouvons modifier le titre ActionBar de deux manières:
Dans le manifeste: dans le fichier manifeste, définissez le libellé de chaque activité.
Dans le code: dans le code, appelez la méthode setTitle () avec une chaîne ou l'ID de chaîne comme argument.
la source
Dans le rappel Activity.onCreate () ou dans un autre endroit où vous devez changer de titre:
la source
essayez de faire ça ...
ça marche pour moi
la source
Un peu plus vieux mais avait le même problème. Je l'ai fait comme ça:
strings.xml
<string name="title_awesome_app">My Awesome App</string>
et assurez-vous de le définir dans votre AndroidManifest.xml :
c'est facile et vous n'avez pas à vous soucier des références nulles et d'autres choses.
la source
la source
Le moyen le plus simple de modifier le nom de la barre d'actions consiste à accéder au fichier AndroidManifest.xml et à saisir ce code.
la source
Vous venez d'ajouter ce code dans la
onCreate
méthode.la source
Pour plus d'informations, consultez ce lien:
http://android--code.blogspot.in/2015/09/android-how-to-change-actionbar-title_21.html
la source
La meilleure façon de modifier le nom de la barre d'actions consiste à accéder au fichier AndroidManifest.xml et à saisir ce code.
la source
Kotlin
Vous pouvez le faire par programme dans Kotlin de cette façon. Vous l'ignorez simplement si "supportActionBar" est nul :
Ou de cette façon. Il lève une exception si "supportActionBar" est null.
la source
La façon la plus simple est d'appeler
this.setTitle("...")
si vous êtes dans l'activité. Et si vous êtes dans un fragment, appelez simplementgetActivity().setTitle("...")
;De cette façon, vous pourrez modifier le titre à tout moment, pas besoin de l'appeler avant
setContentView(R.layout.activity_test)
;la source
Pour les futurs développeurs qui utilisent AndroidX et le composant architectural de navigation .
Au lieu de définir le titre de la barre d'outils à l'aide de l'une des solutions ci-dessus, ce qui peut être très pénible si vous souhaitez le définir dynamiquement lors d'un changement de pile arrière, vous pouvez définir un espace réservé pour le titre du fragment dans le graphique de navigation, comme suit:
La valeur de l'espace réservé doit être fournie à l'aide de
FragmentDirections
(via la méthode d'action).Il est ensuite remplacé dans le titre et s'affiche comme
Hello World
(quandplaceholder = "World"
).la source
getSupportActionBar().setTitle("title");
la source