studio - settitle center toolbar android
¿Cómo cambiar el indicador de HomeAsUp en la nueva barra de herramientas de AppCompat? (6)
Acabo de descubrir que en realidad funciona toolbar.setNavigationIcon (R.drawable.ic_action_back) y aquí está el código para que funcione.
@Override
protected void onCreate(Bundle savedInstanceState) {
.....
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(R.drawable.ic_action_back);
Publique el siguiente código en onOptionsItemSelected (elemento MenuItem)
@Override
public boolean onOptionsItemSelected(MenuItem item) {
......
if (id == android.R.id.home) {
startActivity(new Intent(this, MainActivity.class));
return true;
}
return super.onOptionsItemSelected(item);
}
Nota La actividad principal en este código es la actividad actual a la que quiero que vaya el botón Atrás o Inicio. espero que esto ayude
Quiero cambiar el indicador predeterminado de ActionBar homeAsUp (dibujable) en mi barra de herramientas AppCompat. ¿Cómo lograr eso? Sólo aparece la flecha por defecto.
Estilos (igual para otros niveles de API):
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- API 14 theme customizations can go here. -->
<item name="android:windowActionBarOverlay">true</item>
<item name="android:homeAsUpIndicator">@drawable/home</item>
<!-- Support library compatibility -->
<item name="windowActionBarOverlay">true</item>
<item name="homeAsUpIndicator">@drawable/home</item>
</style>
Barra de herramientas en el diseño de mi fragmento:
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_awesome_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:homeAsUpIndicator="@drawable/home"
android:minHeight="?attr/actionBarSize"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/AppTheme" />
En Fragmento:
toolbar = (Toolbar) rootView.findViewById(R.id.my_awesome_toolbar);
activity.setSupportActionBar(toolbar);
ActionBar actionBar = activity.getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
Desafortunadamente, si esta línea de estilo se usa en una barra de herramientas / barra de herramientas de AppCompat comúnmente compartida con otras actividades en la aplicación, incluida la actividad principal, se mostrará automáticamente el " icono de navegación " especificado, a diferencia del HomeAsUpIndicator estándar predeterminado, que no se muestra a menos que habilitado explícitamente como se desee en una actividad, normalmente de la siguiente manera: (en el onCreate () )
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Con la línea de estilo anterior, ya que se comporta de manera opuesta, de una manera similar, el indicador debe desactivarse explícitamente si no se desea que se muestre, como en la actividad principal, de la siguiente manera: (en onCreate () )
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
(como se observa en los teléfonos Android 4.0.4, 4.3 y 4.4.2)
Intenté setHomeAsUpIndicator(int resId)
, funciona.
private void initToolbar ( Toolbar mToolbar ) {
mToolbar.setTitleTextColor ( getResources ().getColor ( R.color.main_title ) );
setSupportActionBar ( mToolbar );
ActionBar actionbar = getSupportActionBar ();
actionbar.setDisplayHomeAsUpEnabled ( true );
actionbar.setHomeAsUpIndicator ( R.drawable.ic_action_back );
}
Pero mToolbar.setNavigationIcon(R.drawable.ic_action_back)
no funciona :(
Para cambiar el icono solo llame al tiempo de ejecución:
toolbar.setNavigationIcon(R.drawable.home);
Truco con estilos / temas que no funcionan.
Si android.support.v7.app.ActionBarDrawerToggle se usa junto con DrawerLayout y la barra de herramientas, puede cambiar el icono de homeAsUp con el siguiente código:
//set home as up indicator
mDrawerToggle.setHomeAsUpIndicator(R.drawable.ic_up_indicator);
//remove home as up indicator
mDrawerToggle.setHomeAsUpIndicator(null);
para mostrar el indicador homeAsUpIndicator en lugar del indicador home, haga lo siguiente:
mDrawerToggle.setDrawerIndicatorEnabled(false);
Docs:
ActionBarDrawerToggle#setHomeAsUpIndicator ActionBarDrawerToggle#setDrawerIndicatorEnabled
Solo agrega esta línea a tu styles.xml
<item name="navigationIcon">@drawable/ic_back_arrow</item>