Подсветка выбранного элемента ListView
Я работаю над GridView
с setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL)
, По умолчанию строки не выделяются (с синим выделением, которое вы видите в приложениях WhatsApp или Gallery), поэтому мне интересно, выполняет ли API-интерфейс Android уже выделение выделенных элементов, и я что-то упускаю (если да, то что Мне не хватает?) Или мне нужно позаботиться о выделении выделенных строк самостоятельно (если так, то как выделить, а не просто поменять фон)?
Вот мой код:
gridView.setOnItemClickListener(this);
gridView.setEmptyView(view.findViewById(R.id.empty));
gridView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL);
// multiChoiceModeListener is a subclass of AbsListView.MultiChoiceModeListener
// with no particular code on its abstracts methods.
gridView.setMultiChoiceModeListener(multiChoiceModeListener);
1 ответ
Используйте это для фона ListItem (макет XML)
android:background="?android:attr/activatedBackgroundIndicator"
В основном это только селектор, вы также можете создать его сами: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/drawable/activated_background.xml
РЕДАКТИРОВАТЬ:
Учитывая ваш комментарий, это решает это:
android:foreground="?android:attr/activatedBackgroundIndicator"
с FrameLayout
Также связанный вопрос: Как установить атрибут переднего плана для другого не FrameLayout представления