Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 14/05/15, 10:43:52
Array

[xs_avatar]
gonza28 gonza28 no está en línea
Desarrollador
 
Fecha de registro: feb 2012
Localización: INTERESA?
Mensajes: 4,191
Modelo de smartphone: Samsung Galaxy Note 4
Tu operador: Personal
drawer. actualizar titulo en toolBar con el item seleccionado

Hola Compañeros.
Podrian ayudarme por favor?

Estoy usando menu drawer. Me encuentro con un problema. (Problema para mi, en mi caso)
El titulo en la barra de acciones siempre es el string app_name, o sea el nombre de la app.

Quisiera que al seleccionar un item en el menu drawer, por ejemplo: Ejemplo 1
El titulo sea justamente ese: Ejemplo 1.
Si lanzo otro fragmento con el nombre: Ejemplo 2. Estaria bueno para mi que el titulo cambie a ese nombre. ya sea que yo pueda programar en el string o de cualquier manera me da igual. son opciones estaticas, esas opciones siempre van a estar alli..

Muchas gracias por todo. Ojalá puedan darme una mano.
saludos.
Responder Con Cita


  #2  
Viejo 14/05/15, 14:16:43
Array

[xs_avatar]
oxot oxot no está en línea
Usuario muy activo
 
Fecha de registro: may 2010
Localización: Santiago
Mensajes: 741
Modelo de smartphone: Xiaomi RedRice
Tu operador: Pepephone
Veamos, el navigation drawer hace algo así por defecto si usas el código de Google.
Básicamente se trata de una variable de clase que llaman mTitle (un String) que será el título de la toolbar. Entonces, cada vez que haces un fragment transaction, te encargas de llamar a un método onSectionAttached:

Código:
    public void onSectionAttached(int number) {
        switch (number) {
            case 1:
                mTitle = getString(R.string.title_section2);
                break;
            case 2:
                mTitle = getString(R.string.title_section3);
                break;
            case 3:
                mTitle = getString(R.string.title_section4);
                break;
            case 4:
                mTitle = getString(R.string.title_section6);
                break;
        }
    }
Como ves yo uso valores de Strings.xml, para cambiar el valor de esta variable.
Luego tengo un método restoreActionBar dónde está la magia:

Código:
    public void restoreActionBar() {
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayShowTitleEnabled(true);
        actionBar.setTitle(mTitle);
    }
dónde actualizo el título de la barra y listo.

El método restoreActionBar lo llamo como último método dentro de onNavigationDrawerItemSelected, o sea, después de que el usuario ha pulsado algo dentro del navigation Drawer.

Si quieres simplificarlo mucho puedes usar sólo restoreActioBar (String) y mandarle tu directamente el string que quieras.

Salu2
Responder Con Cita
Los siguientes 2 usuarios han agradecido a oxot su comentario:
  #3  
Viejo 14/05/15, 21:44:34
Array

[xs_avatar]
gonza28 gonza28 no está en línea
Desarrollador
 
Fecha de registro: feb 2012
Localización: INTERESA?
Mensajes: 4,191
Modelo de smartphone: Samsung Galaxy Note 4
Tu operador: Personal
 Cita: Originalmente Escrito por oxot Ver Mensaje
Veamos, el navigation drawer hace algo así por defecto si usas el código de Google.
Básicamente se trata de una variable de clase que llaman mTitle (un String) que será el título de la toolbar. Entonces, cada vez que haces un fragment transaction, te encargas de llamar a un método onSectionAttached:

Código:
    public void onSectionAttached(int number) {
        switch (number) {
            case 1:
                mTitle = getString(R.string.title_section2);
                break;
            case 2:
                mTitle = getString(R.string.title_section3);
                break;
            case 3:
                mTitle = getString(R.string.title_section4);
                break;
            case 4:
                mTitle = getString(R.string.title_section6);
                break;
        }
    }
Como ves yo uso valores de Strings.xml, para cambiar el valor de esta variable.
Luego tengo un método restoreActionBar dónde está la magia:

Código:
    public void restoreActionBar() {
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayShowTitleEnabled(true);
        actionBar.setTitle(mTitle);
    }
dónde actualizo el título de la barra y listo.

El método restoreActionBar lo llamo como último método dentro de onNavigationDrawerItemSelected, o sea, después de que el usuario ha pulsado algo dentro del navigation Drawer.

Si quieres simplificarlo mucho puedes usar sólo restoreActioBar (String) y mandarle tu directamente el string que quieras.

Salu2
Muchas gracias.

No estoy con la libreria por defecto. estoy probando esta libreria del menu drawer https://github.com/rudsonlive/Naviga...MaterialDesign

Revisé bastante, pero no pude dar con esa opcion si es que la tiene y falta completar.
La tienes visto a esta libreria? que me recomiendas?

Muchas gracias.
Responder Con Cita
  #4  
Viejo 15/05/15, 13:39:35
Array

[xs_avatar]
oxot oxot no está en línea
Usuario muy activo
 
Fecha de registro: may 2010
Localización: Santiago
Mensajes: 741
Modelo de smartphone: Xiaomi RedRice
Tu operador: Pepephone
Yo simplemente lo he usado en una app de momento pero el código por defecto de Google funciona perfectamente. No sé si esta librería tendrá más opciones de personalización que tu estarás usando. Yo, para lo básico, me quedo con el código por defecto.

En cualquier caso, si miras su actividad principal:
https://github.com/rudsonlive/Naviga...sActivity.java
hace uso del método getSupportActionBar luego la implementación del navigation drawer es muy similar a la genérica y puedes serguir usando el método restoreActionBar que te comenté.
Prueba a llamarlo desde la actividad en la que quieres cambiar el título y cámbialo directamente a ver qué pasa (házlo al final de todo del método por si hay opciones de configuración que realiza esta librería) y con suerte no te lo reescribirá. Como en la librería te dice que no uses el método onCreate, pues intenta hacerlo en onResume y a ver. Ya contarás.

Última edición por oxot Día 15/05/15 a las 13:42:56.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 02:00:12 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /