Karten-Scrollansicht

In API-Ebene XE12 hinzugefügt

Eine View, die horizontal scrollbare Kinderansichten zeigt, die als Karten bezeichnet werden.

Die Karten stammen von CardScrollAdapter, die mit CardScrollView verknüpft ist. Jede Karte repräsentiert ein bestimmtes Object-Element.

Weitere Informationen finden Sie unter Karten in Aktivitäten scrollen.

Allgemeine Verwendung

  1. Erstellen Sie eine Reihe von Karten mit einer Standardansichtshierarchie oder der Klasse CardBuilder.
  2. Implementiere CardScrollAdapter, um die CardScrollView Kartensätze bereitzustellen. Jede Karte hat eine eindeutige Object-ID und stellt ein bestimmtes Object-Element dar.
  3. Lege für die Inhaltsansicht deiner Aktivität CardScrollView fest oder verwende CardScrollView in einem Layout.

Scrollen und Interaktion

CardScrollView benachrichtigt Sie mit den folgenden Listener-Schnittstellen, die von AdapterView übernommen werden:

Verschachtelte Klassen
enum CardScrollView.Animation Definiert den Animationstyp, mit dem eine Karte aufgerufen, eingefügt oder gelöscht werden kann. 
Übernommene Konstanten
Übernommene Felder
Public Constructors
CardScrollView(Context-Kontext, AttributeSet-Attribute)
CardScrollView(Context-Kontext, AttributeSet-Attribute, int defStyle)
Public Methods
voidm
boolean
animieren(int position, CardScrollView.AnimationanimationType)
voidm
CardScrollAdapter
long
int
Ansehen
boolean
boolean
boolean
onKeyDown(int keyCode, KeyEvent-Ereignis)
voidm
onWindowFocusChanged(Boolescher hasWindowFocus)
voidm
voidm
setEmptyView(Anzeigen emptyView)
voidm
setHorizontalScrollBarEnabled(Boolesche Aktivierung)
voidm
setSelection(int position)
Geschützte Methoden
boolean
boolean
voidm
voidm
onLayout(Boolescher Wert geändert, Ganzzahl links, Ganzzahl oben, Ganzzahl rechts, Ganzzahl unten)
voidm
onViewableChanged(View geändert, Ganzzahl, Sichtbarkeit)
Übernommene Methoden

Public Constructors

In API-Ebene XE12 hinzugefügt

öffentlich CardScrollView (Kontext)

In API-Ebene XE12 hinzugefügt

public CardScrollView (Kontext-Kontext, AttributeSet-Attribute)

In API-Ebene XE12 hinzugefügt

public CardScrollView (Context context, AttributeSet attrs, int defStyle)

Public Methods

In API-Ebene XE12 hinzugefügt

öffentlich void aktivieren ()

CardScrollView wird angewiesen, die Funktion zu aktivieren und bereit zu sein. TODO(ajcbik): Untersuchen, ob wir [de]Aktivieren durch Fokusereignisse ersetzen können, siehe b/17574566-Anfrage.

In API-Ebene XE21 hinzugefügt

Öffentlich Boolesch animieren (int position, CardScrollView.AnimationanimationType)

Animiert die Karte an der angegebenen Position, wobei animationType einer der folgenden Werte sein sollte:

  • NAVIGATION: Die Karte wird von jeder Position, normaler Navigation zur
  • INSERTION: Verschiebt die Karte, die nach dem Einfügen sichtbar ist
  • DELETION: Die ausgewählte Karte wird nach dem Löschen nicht mehr angezeigt, wenn sie ausgewählt wird.
Die Animation wird übersprungen, wenn der Scroller deaktiviert ist, eine vorherige autonome Animation ausgeführt wird oder die Position ungültig ist. Eine Löschanimation wird nur ausgeführt, wenn die gelöschte Karte aktuell ausgewählt ist.

Die Animation zum Einfügen und Löschen sollte verwendet werden, nachdem die entsprechende Mutation in CardScrollAdapter ausgeführt wurde. Die Animation ruft die notifyDataSetChanged() auf dem Adapter im richtigen Moment in der Animation auf, auch wenn sie übersprungen oder vorzeitig beendet wird.

Verwendungsbeispiel:

 .... insert card at p-th position in adapter ....
 animate(p, INSERTION);    // calls notifyDataSetChanged() on adapter
 

Parameter
position der in der Animation verwendeten Karte
AnimationTyp steuert die Art der Animation.
Gibt Folgendes zurück:
  • ob die Animation gestartet wurde
In API-Ebene XE12 hinzugefügt

öffentlich void deaktivieren ()

Weist CardScrollView an, es zu deaktivieren. Es wird erst angezeigt, nachdem activate() noch einmal aufgerufen wurde.

In API-Ebene XE12 hinzugefügt

öffentlich CardScrollAdapter getAdapter ()

öffentlich long getSelectedItemId ()

In API-Ebene XE12 hinzugefügt

public int getSelectedItemPosition ()

In API-Ebene XE12 hinzugefügt

öffentlich Ansehen getSelectedView ()

In API-Ebene XE12 hinzugefügt

Öffentlich Boolesch isActivated ()

Öffentlich Boolesch isHorizontalScrollBarEnabled ()

public boolean onKeyDown (int keyCode, KeyEvent event)

öffentlich void onWindowFocusChanged (Boolescher hasWindowFocus)

In API-Ebene XE12 hinzugefügt

öffentlich void setAdapter (CardScrollAdapter-Adapter)

public void setEmptyView (Ansicht emptyView)

setEmptyView(View) wird von CardScrollView nicht unterstützt.

Verwenden Sie einen Adapter mit einer einzigen leeren Ansicht für leere Datensätze, damit die Animationen richtig funktionieren und sich problemlos anpassen lässt.

öffentlich void setHorizontalScrollBarEnabled (boolescher Modus aktiviert)

In API-Ebene XE12 hinzugefügt

öffentlich void setSelection (int position)

Geschützte Methoden

boolescher Wert Boolesch awakenScrollBars ()

Erwacht die horizontale Bildlaufleiste, falls vorhanden.

boolescher Wert boolesch DispatchGenericFocusedEvent (MotionEvent-Ereignis)

Protect void initialScrollbars (TypedArray a)

In API-Ebene XE12 hinzugefügt

Protect void onLayout (Boolescher Wert geändert, Ganzzahl links, Ganzzahl oben, Ganzzahl rechts, Ganzzahl unten)

Protect void onViewableChanged (View changedView, int visible)