StateListDrawable ist ein Zeichenfläche-Objekt (drawable object), die andere Zeichenflächen (drawables) enthält. Je nachdem in welchem Zustand sich eine View befindet wird dann die Zeichenfläche angezeigt die dem aktuellen Zustand der View entspricht. StateListDrawable enthält eine Liste von Zuständen. Zustände können "disabled", "enabled", "unchecked", "checked", "pressed" ("unerlaubt", "erlaubt", "nicht angehakt", " angehakt ", "gedrückt") usw sein.
Ein Zustand kann auch eine Kombination von anderen Zuständen sein (wie zum Beispiel "aktiviert" und "gedrückt").
Das StateListDrawable Objekt enthält eine Liste von Zuständen und Zeichenflächen-Paaren. Jedes mal wenn sich der Viewzustand ändert wird die List durchlaufen und der erste Eintrag der die aktuellen Bedingungen erfüllt wird angezeigt.
Bedingungen erfüllen bedeutet, daß alle Elemente von dem Zustand der Liste auch im aktuellen Zustand der View enthalten sind.
Dies bedeutet, daß ein leerer Zustand allen möglichen aktuellen Zuständen entspricht.
Die Reigenfolge der Zustände ist sehr wichtig, da der erste Zustand der paßt angezeigt wird.
Dieses Beispiel erstellt einen ToggleButton und setzt seine zwei Zustände ("unchecked" und "checked") auf zwei ColorDrawables.
Der komplette Code befindet sich im Englischen Originatutorial.
Beachten Sie daß in diesem Fall die Reihenfolge unwichtig ist da kein Zustand einen anderen enthält.
Ein kompletteres Beispiel findet man hier Creating a toolbar with buttons in Post #7.
Mit verschiedenen Buttons und Tooltips.
Ein Zustand kann auch eine Kombination von anderen Zuständen sein (wie zum Beispiel "aktiviert" und "gedrückt").
Das StateListDrawable Objekt enthält eine Liste von Zuständen und Zeichenflächen-Paaren. Jedes mal wenn sich der Viewzustand ändert wird die List durchlaufen und der erste Eintrag der die aktuellen Bedingungen erfüllt wird angezeigt.
Bedingungen erfüllen bedeutet, daß alle Elemente von dem Zustand der Liste auch im aktuellen Zustand der View enthalten sind.
Dies bedeutet, daß ein leerer Zustand allen möglichen aktuellen Zuständen entspricht.
Die Reigenfolge der Zustände ist sehr wichtig, da der erste Zustand der paßt angezeigt wird.
Dieses Beispiel erstellt einen ToggleButton und setzt seine zwei Zustände ("unchecked" und "checked") auf zwei ColorDrawables.
Der komplette Code befindet sich im Englischen Originatutorial.
B4X:
Sub Process_Globals
End Sub
Sub Globals
End Sub
Sub Activity_Create(FirstTime As Boolean)
Dim tb As ToggleButton
tb.Initialize("") 'no events will be caught
Dim checked, unchecked As ColorDrawable
checked.Initialize(Colors.Green, 10dip)
unchecked.Initialize(Colors.Red, 10dip)
Dim sld As StateListDrawable
sld.Initialize
sld.AddState(sld.State_Checked, checked)
sld.AddState(sld.State_Unchecked, unchecked)
tb.Background = sld
tb.Checked = True
tb.TextColor = Colors.Blue
tb.TextSize = 20
tb.Typeface = Typeface.DEFAULT_BOLD
Activity.AddView(tb, 100dip, 100dip, 100dip, 100dip)
End Sub
Ein kompletteres Beispiel findet man hier Creating a toolbar with buttons in Post #7.
Mit verschiedenen Buttons und Tooltips.