Relleno entre el icono de inicio de ActionBar y el título

¿Alguien sabe cómo configurar el relleno entre el ícono de inicio de ActionBar y el título?

Adapte la respuesta de Cliffus y asigné el logo-drawable en mi definición del estilo de la barra de acciones, por ejemplo, así en res / style.xml:

@style/MyActionBar  

El dibujable se parece al de Cliffus (aquí con el ícono del iniciador de aplicaciones predeterminado) en res / drawable / actionbar_space_between_icon_and_title.xml:

     

En el android_manifest.xml todavía puede establecer un icono de aplicación diferente (icono del iniciador en “escritorio”. Cualquier definición de logotipo diferente aquí es visible en actividades sin una barra de acción.

EDITAR : asegúrese de configurar este dibujable como LOGO , no como el ícono de su aplicación como lo hicieron algunos de los comentaristas.

Simplemente haga un XML dibujable y póngalo en la carpeta de recursos “dibujable” (sin densidad ni otra configuración).

     

El último paso es establecer este nuevo dibujo como logotipo en su manifiesto (o en el objeto de la barra de acciones en su actividad)

¡Buena suerte!

También me enfrenté a un problema similar, en mi caso tuve que establecer títulos dinámicamente en cada actividad según el contenido.

Así que esto funcionó para mí.

 actionBar.setTitle(" " + yourActivityTitle); 

Si todo lo que quiere es el espaciado, esta es la solución más fácil que se me ocurre.

Así es como pude establecer el relleno entre el icono de inicio y el título.

 ImageView view = (ImageView)findViewById(android.R.id.home); view.setPadding(left, top, right, bottom); 

Sin embargo, no pude encontrar una forma de personalizar esto a través de los estilos de ActionBar xml. Es decir, el siguiente XML no funciona:

   

Sin embargo, si busca lograr esto a través de xml, estos dos enlaces pueden ayudarlo a encontrar una solución:

https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml

(Este es el diseño real utilizado para mostrar el ícono de inicio en una barra de acción) https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/action_bar_home.xml

Esta es una pregunta común en Material Design, ya que es posible que desee alinear el título de su barra de herramientas con el contenido del fragmento a continuación. Para hacer esto, puede anular el relleno predeterminado de “12dp” utilizando el atributo contentInsetStart = “72dp” en su diseño toolbar.xml como se muestra a continuación

toolbar.xml

   

Luego, en tu actividad, llama

 Toolbar toolbar = (Toolbar) activity.findViewById(R.id.toolbar); toolbar.setTitle("Title Goes Here"); 

Y terminas con esto:

Barra de herramientas

Para mí, solo funcionó la siguiente combinación, probada de API 18 a 24

 app:contentInsetLeft="0dp" app:contentInsetStart="0dp" app:contentInsetStartWithNavigation="0dp" 

donde en “aplicación” está: xmlns:app="http://schemas.android.com/apk/res-auto"

por ejemplo.

   ....... ....... .......  

Si está utilizando la barra de herramientas de AppCompat (android.support.v7.widget.Toolbar,> = revisión 24, junio de 2016), el relleno entre el icono y el título se puede cambiar con el siguiente valor:

  app:contentInsetStartWithNavigation="0dp" 

Para mejorar mi respuesta, puede usarla en su barra de herramientas directamente dentro de su actividad o puede crear un nuevo archivo de diseño para su barra de herramientas. En este caso, solo tiene que importar el @id de su barra de herramientas usando la propiedad include en cada vista necesaria.

   

Luego puede importar su diseño en su actividad.xml

  

Usar titleMarginStart funciona para mí. Ejemplo de Xamarin:

  

Establezca el logo como tal:

 mToolbar = FindViewById(Resource.Id.toolbar); SetSupportActionBar(mToolbar); SupportActionBar.SetLogo(Resource.Drawable.titleicon32x32); SupportActionBar.SetDisplayShowHomeEnabled(true); SupportActionBar.SetDisplayUseLogoEnabled(true); SupportActionBar.Title = "App title"; 

Utilicé \ t antes del título y funcionó para mí.

Estoy usando una imagen personalizada en lugar del texto del título predeterminado a la derecha del logotipo de mi aplicación. Esto se configura programáticamente como

  actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayUseLogoEnabled(true); actionBar.setCustomView(R.layout.include_ab_txt_logo); actionBar.setDisplayShowCustomEnabled(true); 

Los problemas con las respuestas anteriores para mí son que la sugerencia de @Cliffus no funciona para mí debido a los problemas que otros han esbozado en los comentarios, y si bien la configuración del padrón programático @dushyanth puede haber funcionado en el pasado, creo que el hecho de que el espaciado es ahora configurado usando android:layout_marginEnd="8dip" ya que la API 17 configurando manualmente el relleno no debería tener ningún efecto. Vea el enlace que publicó en git para verificar su estado actual.

Una solución simple para mí es establecer un margen negativo en mi vista personalizada en actionBar, como por ejemplo android:layout_marginLeft="-14dp" . Una prueba rápida muestra que funciona para mí en 2.3.3 y 4.3 usando ActionBarCompat

¡Espero que esto ayude a alguien!

Resolví este problema usando el diseño de navegación personalizado

Al usarlo puedes personalizar cualquier cosa en el título en la barra de acciones:

build.gradle

 dependencies { compile 'com.android.support:appcompat-v7:21.0.+' ... } 

AndroidManifest.xml

         

styles.xml

  

  

action_bar.xml

   

Tuve un problema similar, pero con un espacio entre el icono y el logotipo de la aplicación personalizada en la barra de acciones. La solución de Dushyanth de configuración de relleno programáticamente trabajó para mí (configuración de relleno en el icono de la aplicación / logotipo). Traté de encontrar android.R.id.home o R.id.abs__home ( solo ActionBarSherlock , ya que esto garantiza la compatibilidad con versiones anteriores), y parece funcionar en todos los dispositivos 2.3-4.3 que he probado.

Para mi caso, fue con la barra de herramientas que lo resolví así:

ic_toolbar_drawble.xml

    

En mi Fragmento, verifico la API:

 if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) toolbar.setLogo(R.drawable.ic_toolbar); else toolbar.setLogo(R.drawable.ic_toolbar_draweble); 

¡Buena suerte!

Puede cambiar drawableSize de su DrawerArrow así:

   

No es la respuesta correcta, ya que no puede elegir el lado del relleno y la escala del icono de DrawerArrow cuando cambie drawableSize (drawableSize = width = height). Pero puede margen desde la izquierda. Al margen desde la derecha hacer

 findViewById(android.R.id.home).setPadding(10, 0, 5, 0); 

Utilicé este método setContentInsetsAbsolute(int contentInsetLeft, int contentInsetRight) y funciona!

 int padding = getResources().getDimensionPixelSize(R.dimen.toolbar_content_insets); mToolbar.setContentInsetsAbsolute(padding, 0); 

Cuando usa una barra de herramientas personalizada, puede usar

 toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setTitle(R.string.activity_title); setSupportActionBar(toolbar); getSupportActionBar().setLogo(R.drawable.logo); 

y en el diseño de la barra de herramientas simplemente configure la app:titleMarginStart="16dp"

Tenga en cuenta que debe establecer el icono como un logotipo, no use getSupportActionBar().setIcon(R.drawable.logo) sino use: getSupportActionBar().setLogo(R.drawable.logo)

AppBarLayout y Custom ImageButton para hacerlo.

       

Mi código de Java:

 findViewById(R.id.appbar).bringToFront(); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); final ActionBar ab = getSupportActionBar(); getSupportActionBar().setDisplayShowTitleEnabled(false); 

este trabajo para mí para agregar relleno al título y para el icono de ActionBar he configurado programáticamente.

  getActionBar().setTitle(Html.fromHtml("   Boat App ")); 
 " "Brick Industry 

Solo agregue " " para el nombre de su aplicación. Agregará espacio entre el icono y el título.