Estoy tratando de crear una aplicación simple usando la biblioteca android-support-v7: 21.
Fragmentos de
código:
MainActivity.java
public class MainActivity extends ActionBarActivity {
Toolbar mActionBarToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
mActionBarToolbar.setTitle("My title");
setSupportActionBar(mActionBarToolbar);
}
activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_actionbar"
android:background="@null"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:fitsSystemWindows="true" />
</LinearLayout>
Pero en lugar de "Mi título" en la barra de herramientas, se muestra% nombre de aplicación%.
Parece que el setTitle
método no tiene ningún efecto.
Me gustaría mostrar "Mi título".
UPD:
Antes, styles.xml
era:
<style name="AppTheme" parent="Theme.AppCompat">
<item name="windowActionBar">false</item>
</style>
Entonces, pensé que la barra de acción no se usa. Añado NoActionBar
al estilo padre:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="windowActionBar">false</item>
</style>
Pero el problema no está resuelto.
android
toolbar
android-support-library
krossovochkin
fuente
fuente
Respuestas:
Encontramos la solución:
En vez de:
Solía:
Y funciona.
fuente
getSupportActionBar().setTitle("My title");
puede producir 'java.lang.NullPointerException'setSupportActionBar(mToolbar)
por supuesto, obtendrá una excepción nula, pero si la llamó, simplemente ignore este mensaje. Solo lea - developer.android.com/training/appbar/setting-up.htmlPara cualquiera que necesite configurar el título a través de la barra de herramientas algún tiempo después de configurar SupportActionBar, lea esto.
La implementación interna de la biblioteca de soporte solo comprueba si la barra de herramientas tiene un título (no nulo) en el momento en que se configura SupportActionBar. Si lo hay, se utilizará este título en lugar del título de la ventana. Luego puede establecer un título ficticio mientras carga el título real.
luego...
fuente
this.setTitle("Title")
, dondethis
- es una referencia a una actividad.La respuesta anterior es totalmente cierta pero no funciona para mí.
Resolví mi problema con las siguientes cosas.
En realidad, mi XML es así:
He intentado todas las opciones y, después de todo, acabo de eliminarlas
CollapsingToolbarLayout
porque no necesito usarlas en particular.XML
Así que mi XML final es como:Ahora debe usar la
setTitle()
respuesta anterior:Ahora bien, si desea utilizar
CollapsingToolbarLayout
yToolbar
juntos, entonces usted tiene que utilizarsetTitle()
deCollapsingToolbarLayout
Que te ayude. Gracias.
fuente
CollapsingToolbarLayout
problema resueltoCollapsingToolbarLayout
?Simplemente puede cambiar cualquier nombre de actividad utilizando
fuente
title = "Title"
en Kotlin o tal vezthis.setTitle("Title")
en Java.Pruebe esto, puede definir el título directamente en XML:
fuente
Para establecer el título para cada título de fragmento de barra de navegación
fuente
Prueba esto ... este método funciona para mí ... !! Espero que pueda ayudar a alguien .. !!
Para mostrar el logotipo en la barra de herramientas, pruebe el fragmento a continuación. // Establecer dibujable
Déjame saber el resultado.
fuente
fuente
Consulte https://code.google.com/p/android/issues/detail?id=77763 . Aparentemente se supone que funciona así. Una vez que llame a la llamada al
setSupportActionBar()
método, es responsabilidad del delegado de ActionBar enrutar la llamada a la vista correcta.fuente
Traté de cambiar el nombre de la barra de herramientas del fragmento
Me ayudó, espero ayudar a alguien más
Captura de pantalla:
fuente
No se trata solo de
.setTitle
más métodos de Support Toolbar (Appcompat v7)
onCreate
solo funciona congetSupportActionBar().method()
y no trabajes con
mToolbar.method()
ejemplos:
aunque los siguientes métodos funcionan bien sin
getSupportActionBar()
enonCreate
Problema solo con el
onCreate
evento, aún puede usarlomToolbar.setTitle()
más tarde en lugar de molestogetSupportActionBar().setTitle()
, por ejemplo, si agrega estoonCreate
funcionará (porque se ejecutará más tarde, despuésonCreate
)Prefiero usar esta solución https://stackoverflow.com/a/35430590/4548520 que https://stackoverflow.com/a/26506858/4548520 porque si cambia el título muchas veces (en diferentes funciones) es más cómodo de usar
mToolbar.setTitle()
quegetSupportActionBar().setTitle()
uno más largo y no ves una notificación molesta sobre una excepción nula como congetSupportActionBar().setTitle()
fuente
Para cualquier persona que necesite configurar el título a través de la barra de herramientas algún tiempo después de configurar SupportActionBar (@sorianiv) Y su
Toolbar
está dentro de unCollapsingToolbarLayout
, lea esto:Entonces despúes,
fuente
El título de la aplicación no se mostrará como título predeterminado en cada actividad, puede insertar un título diferente en cada actividad. En su archivo de actividad debajo de onCreate, simplemente pegue una sola línea para establecer el título,
Simplemente cambie el texto "Su título aquí" a su texto.
fuente
Simplemente use esto en su adaptador, donde MainActivity es su AppCompactActivity. Llámalo desde cualquier lugar.
fuente
Lo hice funcionar usando -
fuente
post
si está cambiando el título en el hilo de la interfaz de usuario, que creo que es el 90% de los casos.Si está usando
CollapsibleToolbarLayout
junto conToolbar
entonces deberá establecer el título en ambos diseñosconfigura tu barra de herramientas como barra de acción en el
onCreate
métodoMás tarde, simplemente actualice el título de la barra de herramientas utilizando el
setTitle
métodofuente
Prueba esto:
Código Xml
Código Java
fuente
Si su objetivo es establecer una cadena estática en la barra de herramientas, la forma más fácil de hacerlo es simplemente establecer la etiqueta de actividad en AndroidManifest.xml:
La barra de herramientas obtendrá esta cadena sin ningún código. (funciona para mí con las bibliotecas v27.)
fuente
Tengo un comportamiento extraño que puede ayudarte.
Esto está funcionando pero no tiene efecto solo en onCreate:
Intenta usar esto en onCreate:
fuente
Para cambiar el título de cada actividad diferente
fuente
fuente
Aunque no es inmediatamente relevante para esta configuración en particular, descubrí que eliminar "CollapsingToolbarLayout" de mi XML que envolvía mi barra de herramientas dentro de un AppBarLayout hizo que todo funcionara.
Así que esto:
En lugar de esto:
Luego, configuro el título en onCreate de la actividad, antes de llamar a setSupportActionBar ().
fuente
Esto se puede hacer estableciendo el
android:label
atributo de su actividad en elAndroidManifest.xml
archivo:Y luego agregue esta línea a onCreate ():
fuente
Asegúrese de agregar esta opción:
fuente
La respuesta está en la documentación (que puede encontrar aquí ):
Esa es la solución que realmente encontraste. Solo pensé en hacer una referencia a la documentación oficial (que aparentemente pocos tienden a leer).
fuente
En Kotlin puedes hacer esto:
fuente
Esto está sucediendo porque está utilizando Toolbar y ActionBar ambos. Ahora, como desea utilizar la Barra de herramientas como barra de acción, lo primero que debe hacer es deshabilitar la barra de acción proporcionada por la decoración.
La forma más fácil es hacer que su tema se extienda desde
Theme.AppCompat.NoActionBar
.fuente