Ho una pagina con un effetto di compressione della barra delle azioni simile a questo: http://xmodulo.com/hide-show-toolbar-scrolling-android.html. Ma voglio che la barra delle azioni mostri solo quando la lista mostra già il primo oggetto, non immediatamente ogni volta che scorro verso il basso. Come posso raggiungere questo obiettivo?Comprime la barra delle azioni ma mostra solo quando RecyclerView visualizza completamente il primo elemento
risposta
La libreria di progettazione ha un componente denominato AppBarLayout
per eseguire ciò.
includere la libreria:
dependencies {
compile 'com.android.support:design:22.2.0'
}
Avvolgere il Toolbar
in un AppBarLayout
con i scrollFlags impostati a 'scorrimento', avvolgere l'intero layout in un CoordinatorLayout
, e aggiungere impostare la layout_behavior della visualizzazione scorrimento a @string/appbar_scrolling_view_behavior
.
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll"/>
<!-- If you have tabs you can include them below the toolbar -->
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.AppBarLayout>
<!-- If you use a ViewPager, just add the layout_behavior to it instead of the RecyclerView -->
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>
Questo è il contenuto esatto del tutorial che ho collegato, sono in grado di farlo senza alcun problema. Quello che mi interessa, come menzionato nella mia domanda, è che voglio che la barra delle azioni si mostri solo quando la lista mostra già il primo oggetto, non immediatamente ogni volta che scorro verso il basso. Un po 'come un'intestazione non appiccicosa al viewpager, ma scorre dentro o fuori in sincronia con il primo elemento del recyclerview. – josephus
Il tuo tutorial non usa nemmeno la libreria di progettazione. – tachyonflux
Giusto, scusate ho dimenticato quale tutorial ho collegato (la mia domanda è in giro da giorni, e sto ancora cercando). Ma ho provato a usare anche il metodo CoordinatorLayout, e ha lo stesso effetto di quello che il tutorial stava cercando di fare. Ho anche provato a giocare con i diversi valori possibili di layout_scrollFlags. Speravo che "enterAlwaysCollapsed" con un minimo di 0dip lo facesse, ma no. – josephus
- 1. La barra delle azioni mostra il menu a discesa quando solo un elemento nel menu
- 2. Rimuovi barra delle azioni elemento sfondo blu
- 3. UICollectionView visualizza solo il primo elemento dal set di dati
- 4. mostra solo il primo elemento nell'elenco usando i baffi
- 5. Lista di animazione non funzionante - mostra solo il primo elemento
- 6. La barra di scorrimento RecyclerView torna indietro dopo il primo elemento
- 7. mostra Jframe ma non mostra la barra del titolo sulla barra delle attività
- 8. Cambiare la barra delle azioni nasconde l'animazione?
- 9. ARC Welder taglia la barra delle azioni
- 10. Soft Keyboard nasconde la barra delle azioni
- 11. Nativescript android rimuovere la barra delle azioni
- 12. Solo schede di visualizzazione nella barra delle azioni
- 13. Perché la mia barra delle azioni personalizzata non visualizza "confronta padre" quando si utilizza appcompat e barra degli strumenti?
- 14. Come aggiungere un elemento a discesa sulla barra delle azioni
- 15. Bootstrap pieghevole, mostra il primo elemento
- 16. elemento di menu della barra delle azioni onclick?
- 17. Barra delle azioni divisa solo in modalità azione (CAB)
- 18. Nascondere/mostra la barra delle operazioni contestuale programmazione
- 19. Esistono eventi della barra delle schede per notificare quando qualcuno nasconde/mostra la barra delle schede?
- 20. Android: Come ricreare la barra delle azioni quando il frammento è stato modificato
- 21. Il sottomenu della barra delle azioni non funziona con actionLayout
- 22. Barra delle azioni AndroidSherlock SearchView
- 23. table.unpack() restituisce solo il primo elemento
- 24. CasperJS getElementsByXPath restituisce solo il primo elemento
- 25. La voce di menu controllabile della barra delle azioni di Android non funziona/mostra correttamente?
- 26. Perché JLabel non visualizza "/" quando è il primo carattere?
- 27. NSOutlineView non comprime elemento
- 28. Quando si concentra EditText in ListView o RecyclerView, la tastiera mostra ma scorre non funziona
- 29. Stili della barra delle azioni contestuali
- 30. Modificare il colore dell'icona delle impostazioni della barra delle azioni
Dipende dalla vostra implementazione. Puoi per favore ricordare come stai ottenendo questo effetto? Usando una libreria o gestendo ogni cosa nel tuo codice? –
l'implementazione è collegata alla mia domanda, è così che sto ottenendo l'effetto. – josephus
Attualmente non c'è modo di ottenere quell'effetto. Se si specifica app: layout_scrollFlags = "scroll" al posto dell'app: layout_scrollFlags = "scroll | enterAlways" alla barra degli strumenti, non verrà mai più indietro. Un modo per ottenerlo è Usa la barra degli strumenti come intestazione per visualizzare una lista o una vista a griglia. In questo modo si aprirà e nel modo desiderato –