Я ищу, как изменить цвет фона щелкнутого GridView элемента при щелчке, а затем вернуться к нормальному цветуXamarin Android: Изменение цвета фона элемента GridView при нажатии
Я хочу, чтобы, когда я нажмите, цвет фона моего элемента gridview - оранжевый, а затем через короткое время фон снова станет белым.
Вот что я нашел, но «Устройство» неизвестно.
e.View.SetBackgroundColor(Color.White);
Device.StartTimer(TimeSpan.FromSeconds(0.25),() =>
{
e.View.SetBackgroundColor(Color.Orange);
return false;
});
Я попытался это:
1) Определение цвета путем создания colors.xml значений
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="pressed_color">#972234</color>
<color name="default_color">#000000</color>
</resources>
2) Создание bg_key.xml в вытяжке
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true"
android:drawable="@color/pressed_color"/>
<item
android:state_pressed="true"
android:drawable="@color/pressed_color"/>
<item
android:drawable="@color/default_color" />
</selector>
3) Set android: listSelector и listSelector to GridView
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
android:listSelector="@drawable/bg_key"
android:background="@color/default_color"
/>
И он работает в моем боковом меню, но не на моем gridview ... Мой сетчатый вид состоит из ImageView и TextView - это проблема?
Кроме того, что я должен изменить (для моего бокового меню), чтобы изменить цвет шрифта, а не цвет фона?
Я не знаю, почему, но это не работает Eather ... – Kurapika
Мои телепатические способности не так хороши ... Пожалуйста, объясните, что именно у вас есть пытался и что произошло. В противном случае мы не сможем вам помочь – Joehl
Я пробовал то, что вы разместили, и цвет не меняется. Я новичок в Xamarin, поэтому, возможно, я не написал его в хорошем месте, я написал его здесь: «gridView.ItemClick + = (s, e) => { var t = new System.Timers.Timer() ; t.Interval = 250; // В милисекунд t.Elapsed + = (отправитель, арг) => { RunOnUiThread (() => { e.View.SetBackgroundColor (Color.Orange); }); }; t.Start(); }; ' – Kurapika