2010-04-02 15 views

risposta

16

Il modo più semplice per farlo, secondo me, è quello di sbarazzarsi della barra del titolo standard (android:theme="@android:style/Theme.NoTitleBar" nell'elemento <activity> nel manifesto) e mettere il proprio "barra del titolo" in alto dell'attività.

Nota, tuttavia, che lo stile "pulsante nella barra del titolo" è più iPhone-ish. In genere, Android si trova nel menu delle opzioni, quindi l'interfaccia utente è meno ingombrante (al costo di due tocchi per eseguire l'aggiornamento).

+6

È interessante notare che, Android ora stanno sostenendo l'inserimento di una barra del titolo coerente con pulsanti per azioni ripetute spesso. Vedi, ad esempio, l'app Google I/O 2010 e il post sul blog dei pattern di progettazione dell'interfaccia utente di Twitter: http://android-developers.blogspot.com/2010/05/twitter-for-android-closer-look-at.html –

1

Penso che un approccio migliore sarebbe semplicemente aggiornare la vista se è attiva utilizzando un gestore. Se il tuo contenuto viene tirato quando l'attività viene ripresa, ogni volta che esci e ritorna alla vista, si aggiornerà. Se si prevede che gli utenti siedano al livello più alto della vista e debbano aggiornare le informazioni, è possibile gestirli con un gestore ritardato che chiamerà il metodo di ripresa e aggiornerà periodicamente la visualizzazione, annullando quindi la necessità di un pulsante.

Here è un collegamento alla documentazione per la classe di gestore. Vorrei iniziare esaminando l'uso di base del gestore. Quindi testare il metodo sendMessageDelayed in modo che alla fine di ogni chiamata si riavvii il gestore. Assicurati inoltre di creare un nuovo gestore solo se la tua attività è l'attività principale e non preoccuparti di aggiornare l'interfaccia utente se non lo è. Aggiungere una semplice flag isActive a on pause e on resume è un modo decente per verificarlo.

+1

Si assumono piani dati illimitati. Non tutti hanno piani dati illimitati. Altri pagano al megabyte. L'aggiornamento automatico come opzione è interessante; aggiornamento automatico come * l'unica opzione * non è cool. – CommonsWare

3

Perché non provare questo

@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

Yep questo solveed un problema che ho avuto ... rifilato versione è al di sotto ...

@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 */ 
    } 
} 
Problemi correlati