Подтвердить что ты не робот

Как изменить цвет выбранного элемента в ListView?

Я создаю ListView, у которого есть некоторые простые элементы внутри ViewCell.

Когда я выбираю один из элементов, он становится оранжевым. Когда я нажимаю и удерживаю (чтобы открыть контекстные действия), он становится белым...

background color

<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>

Как я могу настроить эти цвета?

4b9b3361

Ответ 1

Я узнал, что должен настроить его непосредственно на Android.

Чтобы использовать тему, я изменил Droid/Properties/AssemblyInfo.cs, добавив:

[assembly: Application(Theme = "@style/AppStyle.Light")]

И я создал несколько файлов:

Droid\Resources\значения

colors.xml содержит определения цвета для моей темы:

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <color name="ListViewSelected">#96BCE3</color>
  <color name="ListViewHighlighted">#E39696</color>
</resources>

styles.xml содержит настройки тем:

<?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>

Используя эти имена, я могу изменить стиль списка.

android:colorPressedHighlight
android:colorLongPressedHighlight
android:colorFocusedHighlight
android:colorActivatedHighlight
android:activatedBackgroundIndicator

Ссылки можно найти на developer.android.com R.attr

colors