Einfache Frage, aber ich kann keine Antwort finden. Wie kann ich das CollapsingToolbarLayout
programmgesteuert reduzieren oder erweitern ?
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Einfache Frage, aber ich kann keine Antwort finden. Wie kann ich das CollapsingToolbarLayout
programmgesteuert reduzieren oder erweitern ?
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Antworten:
Mit Support Library v23 können Sie anrufen
appBarLayout.setExpanded(true/false)
.Weiterführende Literatur: AppBarLayout.setExpanded (boolean)
quelle
Ich benutze diesen Code zum Reduzieren der Symbolleiste. Ich kann immer noch keinen Weg finden, es zu erweitern.
Bearbeiten 1: Dieselbe Funktion mit negativer GeschwindigkeitY,
aber die Symbolleiste wird nicht um 100% erweitertund false für den letzten Parameter sollte funktionierenEdit 2: Dieser Code macht den Trick für mich
Ich werde versuchen, das Verhalten selbst umzusetzen.
quelle
onNestedFling
auf setzenfalse
.onNestedFling
bevor ich das Fragment festlegte . Nachdem ich das Fragment gesetzt hatte, konnte ich die Methode erfolgreich aufrufen.Sie können mit Ihrem benutzerdefinierten Animator festlegen, um wie viel es erweitert oder reduziert wird. Verwenden Sie einfach die
setTopAndBottomOffset(int)
.Hier ist ein Beispiel:
quelle
( -900 )
zumvalueAnimator.setIntValues
- ( appBar.getTotalScrollRange() )
Ich habe eine kleine Erweiterung an geschrieben
AppBarLayout
. Es ermöglicht das Erweitern und Reduzieren vonCollapsibleToolbarLayout
sowohl mit als auch ohne Animation. Es scheint ganz richtig zu sein.Probieren Sie es einfach aus.
Verwenden Sie es einfach anstelle von Ihrem
AppBarLayout
, und Sie können Methoden aufrufen, die für das Erweitern oder Reduzieren desCollapsingToolbarLayout
.Es funktioniert genau wie erwartet in meinem Projekt, aber möglicherweise müssen Sie die Fling- / Scroll-Werte in den
perform...
Methoden (insbesondere inperformExpandingWithAnimation()
) anpassen, um sie perfekt an Ihre anzupassenCollapsibleToolbarLayout
.quelle
setExpanded
Methode in derAppBarLayout
.Verwenden Sie
mAppBarLayout.setExpanded(true)
diese Option, um die Symbolleiste zu erweitern und die SymbolleistemAppBarLayout.setExpanded(false)
zu reduzieren.Wenn Sie die Höhe von CollapsingToolbarLayout programmgesteuert ändern möchten, verwenden Sie einfach
mAppBarLayout.setLayoutParams(params)
;Erweitern:
Zusammenbruch:
quelle
für diejenigen, die mit onNestedPreScroll arbeiten und Fehler wie ich erhalten möchten. Ich bekomme NullPointerException in onCreate ohne diese Zeile
und funktioniert damit nicht richtig. aber ich arbeite mit diesem Problem um
in onCreate:
und...
quelle
Versuche dies...
Erweitern
Zurückrufen
quelle
Dies kann helfen, sich auszudehnen oder zusammenzubrechen:
quelle
Ich habe dies verwendet
quelle
So programmieren / reduzieren Sie AppBarLayout programmgesteuert:
quelle