2013-07-31 16 views
16

zanim opublikowałem ten wątek, już googlowałem (jak stylizować elementy listview) Nie mogę znaleźć dobrego przykładu pokazującego, jak stylować element listview (normalny, dotykowy, długie kliknięcie itp.) Kolory tła też chcę to zrobić Widok listy VK z promieniem obramowania i cieniem pola, proszę bardzo potrzebuję tej pomocy również inni ludzie szukający tego jest jakiś przykład czy ktoś może mi powiedzieć, co muszę umieścić w tle selektora xml elementu?styl elementu Android listview?

obraz jeden pokaz jak ListView pozycja ma promień graniczny i cień

enter image description here

zdjęcie 2 przedstawiającym po kliknięciu na pozycję

enter image description here

więc chłopaki jest jakiś sposób, aby rób jak to ?

Odpowiedz

22

Pewnie, że najlepiej użyć stylów tutaj:

<!-- res/values/styles.xml --> 
<style name="ListView" parent="@android:style/Widget.ListView"> 
    <item name="android:background">@color/light_grey</item> 
    <item name="android:cacheColorHint">@android:color/transparent</item> 
    <item name="android:divider">@android:color/transparent</item> 
    <item name="android:dividerHeight">0dp</item> 
    <item name="android:listSelector">@drawable/list_item_selector</item> 
</style> 

@color/light_grey definicja:

<!--- res/values/colors.xml ---> 
<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="light_grey">#cccccc</color> 
</resources> 

Musisz zdefiniować kolor light_grey w colors.xml i stworzyć styl karty list_item_selector.xml w Twój folder z rysunkami:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:drawable="@drawable/item_selected" android:state_pressed="true"/> 
    <item android:drawable="@drawable/item_focused" android:state_focused="true"/> 
    <item android:drawable="@drawable/item_normal"/> 
</selector> 
+0

wewnątrz 'selektora', którego używasz' drawable' do ustawiania tła, ale muszę ustawić kolory tła jak '# ffffff' jak? –

+0

Ponieważ patrzysz na styl karty z cieniem, musisz użyć 9-krotnego losowania lub selektor rozszerzy się do krawędzi każdego elementu listy, który wyglądałby paskudnie. – Krylez

+4

@Krylez jak ustawić to na 'listView' ten kod:' style = "@ style/ListView" 'nie działa –

0

Najlepszym sposobem jest, aby zastąpić swoją wartość w AppTheme w pliku styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="android:listSelector">@color/teal_100</item> 
</style> 

Ten nadrzędny odbija się na wszystkich ListViews których używasz w swojej aplikacji.

Możesz także użyć opcji drawable zamiast koloru.