Comment append des boutons comme rafraîchir et rechercher dans ToolBar dans Android?

entrer la description de l'image ici

J’ai créé une barre d’outils, mais lorsque j’ajoute des éléments de menu dans menu.xml, cela se traduit toujours par un débordement. Comment puis-je l’append séparément? De plus, le titre est affiché au milieu (verticalement), comment le montrer en haut?

menu.xml

    

MainActivity.java

 package com.example.toolbar; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.Toolbar; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); setSupportActionBar(toolbar); // toolbar.setNavigationIcon(R.drawable.back); toolbar.setLogo(R.drawable.ic_launcher); //toolbar.setTitle("Title"); // toolbar.setSubtitle("Subtitle"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } 

activity_main.xml

     

OK, j’ai les icons car j’ai écrit dans menu.xml android:showAsAction="ifRoom" au lieu de app:showAsAction="ifRoom" depuis que app:showAsAction="ifRoom" bibliothèque v7.

Cependant, le titre arrive au centre de la barre d’outils étendue. Comment le faire apparaître en haut?

Essayez de faire ceci:

 getSupportActionBar().setDisplayShowTitleEnabled(false); getSupportActionBar().setDisplayHomeAsUpEnabled(false); getSupportActionBar().setDisplayShowTitleEnabled(false); 

et si vous avez créé votre barre d’outils personnalisée (ce que vous avez probablement fait), vous pouvez utiliser la méthode la plus simple possible:

 toolbarTitle = (TextView)findViewById(R.id.toolbar_title); toolbarSubTitle = (TextView)findViewById(R.id.toolbar_subtitle); toolbarTitle.setText("Title"); toolbarSubTitle.setText("Subtitle"); 

Même chose pour toutes les autres vues que vous insérez dans votre barre d’outils. J’espère que cela aide.

Ajoutez cette ligne en haut:

"xmlns:app="http://schemas.android.com/apk/res-auto"

puis utilisez:

app:showasaction="ifroom"

Pour contrôler l’emplacement du titre, vous pouvez définir une police personnalisée comme expliqué ici (par twaddington): Lien

Ensuite, pour déplacer la position du texte, dans updateMeasureState() vous appendiez p.baselineShift += (int) (p.ascent() * R); De même, dans updateDrawState() ajoutez tp.baselineShift += (int) (tp.ascent() * R); Où R est double entre -1 et 1.