I'm creating a ListView that has some simple items inside a ViewCell.
When I select one of the items it becomes orange. When I click and hold (to open the context actions) it becomes white...
<ListView ItemsSource="{Binding Items}" HasUnevenRows="True">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.ContextActions>
<MenuItem Text="Delete" />
</ViewCell.ContextActions>
<StackLayout Orientation="Horizontal" Padding="20">
<StackLayout HorizontalOptions="StartAndExpand">
<Label Text="{Binding Name}" FontSize="Large" FontAttributes="Bold" />
<Label Text="{Binding Description}" />
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
How can I customize these colors?
To select a single list view item, you can use various actions provided by Android ListView object: TouchItem , LongTouchItem , and similar actions – simulate touch or long touch on a specific list view item. SelectItem – selects or unselects the specified list view item.
To get which item was selected, there is a method of the ListView called getItemAtPosition.
Android ListView is a ViewGroup that is used to display the list of items in multiple rows and contains an adapter that automatically inserts the items into the list. The main purpose of the adapter is to fetch data from an array or database and insert each item that placed into the list for the desired result.
I found out that I have to customize it directly on Android.
To use the theme I changed Droid/Properties/AssemblyInfo.cs
adding:
[assembly: Application(Theme = "@style/AppStyle.Light")]
And I created some files on:
Droid\Resources\values
colors.xml
contains the color definitions for my theme:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<color name="ListViewSelected">#96BCE3</color>
<color name="ListViewHighlighted">#E39696</color>
</resources>
styles.xml
contains the theme settings:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="AppStyle.Light" parent="android:style/Theme.Material.Light.DarkActionBar">
<item name="android:colorPressedHighlight">@color/ListViewSelected</item>
<item name="android:colorLongPressedHighlight">@color/ListViewHighlighted</item>
<item name="android:colorFocusedHighlight">@color/ListViewSelected</item>
<item name="android:colorActivatedHighlight">@color/ListViewSelected</item>
<item name="android:activatedBackgroundIndicator">@color/ListViewSelected</item>
</style>
</resources>
Using these names I can change the listview style.
android:colorPressedHighlight
android:colorLongPressedHighlight
android:colorFocusedHighlight
android:colorActivatedHighlight
android:activatedBackgroundIndicator
References can be found on developer.android.com R.attr
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With