6

Dopo Android di sostegno Design Library è stato rilasciato, ho voluto realizzare un effetto come una pagina di Twitter Profilo, in cui Toolbar s' title e subtitle potrebbe essere modificato come schermo scorrere in senso verticale. Così ho provato a utilizzare CoordinatorLayout, AppBarLayout, CollapsingToolbarLayout e Toolbar da Libreria di progettazione supporto Android per ottenere questo effetto. Tutto ha funzionato come previsto, ad eccezione del fatto che il contenuto di Toolbar non può essere mostrato o modificato come volevo. Avrei dovuto voler visualizzare collapseIcon, navigationIcon, title, subtitle di Toolbar, ma non si sono presentati anche se li avevo impostati nel layout e al livello di programmazione. Proprio come ha detto il blog,Come mostrare il logo, l'icona, il titolo, il sottotitolo della barra degli strumenti quando sono racchiusi in un CollapsingToolbarLayout?

Si noti che in questi casi, si dovrebbe chiamare setTitle() sul CollapsingToolbarLayout, piuttosto che sulla barra degli strumenti in sé.

Se è stata selezionata la doc, si dovrebbe scoprire CollapsingToolbarLayout concentrarsi solo sulle impostazioni di title, ma può fare nulla collapseIcon, navigationIcon e subtitle.

Quindi qualcuno potrebbe dirmi come ottenere questo effetto tramite Toolbar e CollapsingToolbarLayout? Se non potevano essere in grado, allora quali altre cose potrebbero essere? Qualcuno ha qualche idea su questo?

Qualsiasi consiglio sarà apprezzato. Grazie in anticipo.

+1

Solo una nota. La libreria di progettazione Android non richiede l'anteprima di Android M. –

+0

Penso che questo sia quello che stai vivendo: https://code.google.com/p/android/issues/detail?id=175069 – StingRay5

risposta

1

Ran nella stessa questione. Per me è stato risolto rimuovendo lo android:fitsSystemWindows="true" dai parametri di layout. Tuttavia, ciò significa che la barra di stato non farà parte dello sfondo comprendente della barra degli strumenti.

2

Questo problema è stato segnalato come errore here. L'ho sperimentato personalmente con una delle mie app. L'impostazione di topMargin per la barra degli strumenti funziona per me. Come qualcuno ha commentato il bug report, ecco la correzione, come una funzione del rapporto sul problema.

private void fixApi21ToolBarBug(Toolbar toolbar){ 
    if(Build.VERSION.SDK_INT!=21) return; //only on api 21 
    final int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); 
    final int result = (resourceId > 0) ? getResources().getDimensionPixelSize(resourceId) * 2 : 0; 
    final CollapsingToolbarLayout.LayoutParams params = (CollapsingToolbarLayout.LayoutParams) toolbar.getLayoutParams(); 
    params.topMargin -= result; 
    toolbar.setLayoutParams(params); 
} 

Vedere qui il risultato.

enter image description here