Comment modifier le titre et l'icône de la barre d'action android
j'essaie de faire des choses sur la barre D'action dans Android.
j'ai déjà ajouté de nouveaux éléments dans le côté droit de la barre d'action.
Comment changer le côté gauche de la barre d'action? Je veux changer l'icône et le texte, et je voudrais ajouter un Bouton "Retour" dans la barre d'action pour les autres écrans
15 réponses
C'est très simple à accomplir
si vous voulez changer le code, appelez:
setTitle("My new title");
getActionBar().setIcon(R.drawable.my_icon);
et mettez les valeurs à tout ce que vous voulez.
Ou, dans le manifeste Android fichier XML:
<activity android:name=".MyActivity"
android:icon="@drawable/my_icon"
android:label="My new title" />
pour activer le bouton back dans votre application, utilisez:
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
le code doit être placé dans votre onCreate
pour que le changement d'étiquette/icône soit transparent utilisateur, mais en réalité il peut être appelé n'importe où pendant le cycle de vie de l'activité.
pour rendre une icône unique utilisable par toutes vos barres d'action, vous pouvez le faire dans votre manifeste Android.
<application
android:logo="@drawable/Image">
...
</application>
si vous voulez changer le titre de la barre D'Action, il vous suffit de donner le code de ligne 1 suivant dans l'onCreate () de votre activité
getActionBar().setTitle("Test");
Vous avez juste besoin d'ajouter ces 3 lignes de code. Remplacez l'icône par votre propre icône. Si vous voulez générer des icônes utiliser ce
getSupportActionBar().setHomeAsUpIndicator(R.drawable.icon_back_arrow);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
vous pouvez changer l'icône dans votre en ajoutant n'importe quelle icône que vous voulez à vos dossiers dessinables respectifs, puis en changeant cette ligne dans votre AndroidManifest.fichier xml:
android:icon="@drawable/ic_launcher"
pour correspondre au nom de votre icône. Ou mettez votre icône comme ic_launcher, si elles sont la même icône. En ce qui concerne ce qu'il dit, ajoutez ou modifiez les chaînes qui correspondent à celles de votre res/values/strings.fichier xml. Puis, encore une fois dans votre AndroidManifest.fichier xml, modifier cette ligne:
android:label="@string/app_name"
quelle que soit la corde que vous avez dans leur. Vous aurez à le faire pour l'ensemble de la demande, et selon les activités que vous voulez, mais les lignes sont les mêmes.
Espérons que cette aide.
Dans Android 5.0 matériel des lignes directrices de conception de décourager l'utilisation de l'icône dans l'actionBar
pour lui permettre d'ajouter le code suivant
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);
crédit va à l'auteur de ce article
pour cela, vous pouvez le faire de 2 façons: XML ou Java. Voir ici: comment modifier le texte sur la barre d'action
:
XML:
<activity android:name=".Hello_World"
android:label="This is the Hello World Application">
</activity>
Java:
public class TitleBar extends Activity {
/** Called when the activity is first created. */
@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);
}
}
}
Pour définir le Titre :
getActionBar().setTitle("Title");
pour l'icône :
getActionBar().setIcon(R.drawable.YOUR_ICON_NAME);
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(getString(R.string.titolo));
actionBar.setIcon(R.mipmap.ic_launcher);
actionBar.setDisplayShowHomeEnabled(true);
j'ai utilisé l'appel suivant à l'intérieur de onNavigationItemSelected
:
HomeActivity.this.setTitle(item.getTitle());
ajoutez le code ci-dessous à l'intérieur d'une fonction onCreate dans votre activité.
setTitle("NewName");
le titre de la barre d'action utilisera, par défaut, le label de l'activité courante, mais vous pouvez également le définir par programmation via ActionBar.setTitle()
.
pour mettre en œuvre la fonctionnalité du bouton" Back "(plus précisément," Up") dont vous parlez, lisez la section" Using the App Icon for Navigation "du Action Bar developer guide .
Enfin, pour changer l'icône, le guide couvre aussi bien. En bref, la barre d'action affichera l'image fournie dans android:icon
dans l'élément application
ou activity
de votre manifeste, s'il y en a un. La pratique habituelle est de créer une icône d'application (dans toutes les densités dont vous avez besoin) nommée ic_launcher.png
, et de la placer dans vos répertoires drawable-*
.
j'ai eu non-static method setTitle(CharSequence) cannot be referenced from a static context
erreur parce que j'ai utilisé setTitle()
dans la classe statique PlaceholderFragment. Je l'ai résolu en utilisant getActivity().getActionBar().setTitle("new title");
aller à manifester dans quelle activité spécifique vous voulez changer le titre de la barre D'Action nom et écrire android:label="nom du Titre"
ce travail pour moi:
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.mipmap.baseline_dehaze_white_24);