в моем списке, когда пользователь долго нажимает на элемент, я рисую пользовательскую панель действий и предоставляю пользователю возможность удалять сразу несколько элементов одновременно.listview selection color in android
по умолчанию, если я выполняю длительное нажатие, я получу цвет выбора как синий, и он исчезнет.
Чтобы преодолеть это, я попытался добавить такой селектор.
listviewselector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selected -->
<item
android:state_focused="true"
android:state_selected="false"
android:drawable="@color/RED"/>
<!-- Pressed -->
<item
android:state_selected="true"
android:state_focused="false"
android:drawable="@color/BLUE" />
</selector>
Если я установить этот селектор, когда пользователь выполняет длительное нажатие я могу видеть красный цвет, но после палат, если пользователь выполняет выбор, цвет не становится удерживается на предмет. По умолчанию он выглядит белым.
Я попытался установить цвет фона на основе состояния, как показано ниже
if(mSelectedItemsIds.get(key))
{
convertView.setBackgroundColor(REDCOLOR);
}
else
{
convertView.setBackgroundColor(WHITE);
}
В этом случае, если пользователь выполняет длительное нажатие, а затем, если пользователь выбрать несколько элементов, я мог видеть красный цвет и по умолчанию всех цветов элементов будут быть белым. Но если пользователь прикасается к любому элементу, цвет по умолчанию будет ничем. Если цвет не будет выбран при выборе.
Как получить белый цвет по умолчанию, на красном синем цвете и при красном цвете красного цвета?
я попытался как этот Нового селектор:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selected -->
<item
android:state_focused="true"
android:state_selected="false"
android:drawable="@color/RED"/>
<!-- Pressed -->
<item
android:state_selected="true"
android:state_focused="false"
android:drawable="@color/WHITE" />
</selector>
if(mSelectedItemsIds.get(key))
{
convertView.setBackgroundColor(mContext.getResources().getColor(R.color.RED));
}
else
{
convertView.setBackgroundColor(R.drawable.listviewselector);
}
В этом я получаю по умолчанию все товару голубого цвета. Зачем?
попробуйте установить listselector в файл XML завышены по convertView –
любой образец кода, пожалуйста .. спасибо – Naruto
listviewselector.xml, что Вы отправили это образец, кстати я тоже блондина веером –