2010-04-02 20 views

Respuesta

16

La forma más sencilla de hacerlo, en mi humilde opinión, es deshacerse de la barra de título estándar (android:theme="@android:style/Theme.NoTitleBar" en el elemento <activity> en el manifiesto) y poner su propia "barra de título" en la parte superior de la actividad.

Tenga en cuenta, sin embargo, que el estilo del "botón en la barra de título" es más iPhone-ish. Android suele tener eso en el menú de opciones, por lo que la interfaz de usuario es menos desordenado (a un costo de dos toques para hacer la actualización).

+6

Curiosamente, Android ahora están abogando por la inclusión de una barra de título consistente con botones para acciones frecuentemente repetidas. Consulte, por ejemplo, la aplicación Google I/O 2010 y la publicación de blog de patrones de diseño de la IU de Twitter: http://android-developers.blogspot.com/2010/05/twitter-for-android-closer-look-at.html –

1

Creo que un mejor enfoque sería simplemente actualizar la vista si está activa utilizando un controlador. Si extrae contenido cuando la actividad se reanuda, cada vez que se vaya y regrese a la vista, se actualizará. Si espera que los usuarios se sienten en el nivel superior de la vista y necesiten actualizar la información, puede manejar esto con un controlador retrasado que llamará al método de su currículum y periódicamente actualizará la vista, anulando así la necesidad de un botón.

Here es un enlace a la documentación de la clase de controlador. Comenzaría investigando el uso básico del controlador. Luego pruebe el método sendMessageDelayed para que al final de cada llamada reinicie el controlador. También asegúrese de crear solo un nuevo controlador si su actividad es la actividad principal y no se moleste en actualizar la interfaz de usuario si no es así. Agregar un indicador simple de isActive a pause y on resume es una forma decente de verificar esto.

+1

Usted asume planes de datos ilimitados. No todo el mundo tiene planes de datos ilimitados. Otros pagan por megabyte. Actualizar automáticamente como una opción es genial; se actualiza automáticamente ya que la * única opción * no es buena. – CommonsWare

3

¿Por qué no intenta esto

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    final boolean customTitle= requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 

    setContentView(R.layout.main); 

    if (customTitle) { 
     getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, Set your layout for title here and mention your button in this layout); 
    } 

    final TextView myTitleText = (TextView) findViewById(R.id.myTitle); 
    if (myTitleText != null) { 
     myTitleText.setText("NEW TITLE"); 
     myTitleText.setBackgroundColor(Color.BLUE); 
    } 
} 
3

sip esta solveed un problema que tuve ... recortado versión está por debajo ...

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 

    setContentView(R.layout.main); 
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, Set your layout for title here and mention your button in this layout); 

    final TextView myTitleText = (TextView) findViewById(R.id.myTitle); 
    if (myTitleText != null) { 
     /* your code here */ 
    } 
} 
Cuestiones relacionadas