B
binneuhier
Fortgeschrittenes Mitglied
- 10
Hi,
ich habe eine ViewGroup, welche beim Klick genauso aussehen soll, wie wenn man auf ein ListItem aus einem ListView klickt.
das habe ich ganz leicht hinbekommen mit:
mit der Zeile:
-> android:background="@android:drawable/list_selector_background"
das ist ein drawable was in jedem Handy vorhanden ist. Dieses Drawable nutzt auch jede ListView beim jedem ListItem.
Dieses Drawable definiert, wie ein ListItem aussieht:
- wenn es disabled ist
- wenn es focus hat
- wenn es geklickt wird
- macht auch den LongKlick Effekt
Jetzt zu meinem Problem:
Bei Geräten ab Version 3.X (inkl. 4.X) ist dieses Drawable zwar noch vorhanden, aber sieht aus wie bei 2.X
Die ListView bei Geräten ab 3.X nutzen nämlich ein anderes Drawable, mit dem Namen list_selector_holo_dark/light
jetzt könnte ich hergehen und ein Layout machen für v8 mit dem alten Drawable und ein Layout machen für v11 mit dem neuen Drawable.
(geht ja einfach über die Ordnerstruktur)
Das Problem ist, dass das neue Drawable nicht nutzbar ist, da nicht public.
(Fehlermeldung im xml des Layouts)
Irgendwo hab ich gelesen ich soll das Drawable (inkl. Farben,PNGs, Transitionen, ...) einfach ins Projekt kopieren. Das stellt mich aber vor einem neuen Problem:
Nicht jeder nutzt das default Design, bei Nexusgeräten(2.X) ist ein ListItemClick Orange, bei HTC Geräten ist ein ListItemClick Grün, bei CyanogenMod kann man das Design frei wählen.
(Bei 2.X ist das kein Problem, denn da kann ich das Systemdrawable nutzen)
zb. bei 4.X ist der ListItemClick hellblau, hat jemand jedoch ein anderes Design und ich kopier "fest" die PNGs ins Projekt so sieht das dann schei*e aus.
Kann man das verstehen?
hat jemand vl eine Lösung für mich?
zur Info:
Mein Fragment hat eine ListView und _darüber_ ist ein LinearLayout(horizontal). Als Header der nicht mitscrollt. Das LinearLayout macht nichts anderes als "ListItem hinzufügen". Beim klick soll es jedoch so aussehen als wäre es ein Teil der Liste darunter, der nicht mitscrollt.
gruß und danke
ich habe eine ViewGroup, welche beim Klick genauso aussehen soll, wie wenn man auf ein ListItem aus einem ListView klickt.
das habe ich ganz leicht hinbekommen mit:
HTML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@android:drawable/list_selector_background"
>
<ImageView/>
<TextView/>
</LinearLayout>
-> android:background="@android:drawable/list_selector_background"
das ist ein drawable was in jedem Handy vorhanden ist. Dieses Drawable nutzt auch jede ListView beim jedem ListItem.
Dieses Drawable definiert, wie ein ListItem aussieht:
- wenn es disabled ist
- wenn es focus hat
- wenn es geklickt wird
- macht auch den LongKlick Effekt
Jetzt zu meinem Problem:
Bei Geräten ab Version 3.X (inkl. 4.X) ist dieses Drawable zwar noch vorhanden, aber sieht aus wie bei 2.X
Die ListView bei Geräten ab 3.X nutzen nämlich ein anderes Drawable, mit dem Namen list_selector_holo_dark/light
jetzt könnte ich hergehen und ein Layout machen für v8 mit dem alten Drawable und ein Layout machen für v11 mit dem neuen Drawable.
(geht ja einfach über die Ordnerstruktur)
Das Problem ist, dass das neue Drawable nicht nutzbar ist, da nicht public.
(Fehlermeldung im xml des Layouts)
Irgendwo hab ich gelesen ich soll das Drawable (inkl. Farben,PNGs, Transitionen, ...) einfach ins Projekt kopieren. Das stellt mich aber vor einem neuen Problem:
Nicht jeder nutzt das default Design, bei Nexusgeräten(2.X) ist ein ListItemClick Orange, bei HTC Geräten ist ein ListItemClick Grün, bei CyanogenMod kann man das Design frei wählen.
(Bei 2.X ist das kein Problem, denn da kann ich das Systemdrawable nutzen)
zb. bei 4.X ist der ListItemClick hellblau, hat jemand jedoch ein anderes Design und ich kopier "fest" die PNGs ins Projekt so sieht das dann schei*e aus.
Kann man das verstehen?
hat jemand vl eine Lösung für mich?
zur Info:
Mein Fragment hat eine ListView und _darüber_ ist ein LinearLayout(horizontal). Als Header der nicht mitscrollt. Das LinearLayout macht nichts anderes als "ListItem hinzufügen". Beim klick soll es jedoch so aussehen als wäre es ein Teil der Liste darunter, der nicht mitscrollt.
gruß und danke