我正在使用GridView
处理setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL)
。默认情况下,行不会突出显示(您在 WhatsApp 或图库应用中看到蓝色突出显示),所以我想知道,Android API是否已经开始重点突出显示选定的项目,我错过了一些东西(如果是这样,我错过了什么?)或者我必须自己突出显示选定的行(如果是这样,如何突出显示,而不仅仅是改变背景)?
这是我的代码:
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);
答案 0 :(得分:4)
将此用于ListItem背景(XML布局)
android:background="?android:attr/activatedBackgroundIndicator"
它基本上只是一个选择器,您也可以自己构建:https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res/drawable/activated_background.xml
编辑:
鉴于你的评论,这解决了它:
带有FrameLayout的 android:foreground="?android:attr/activatedBackgroundIndicator"
还有相关问题:How to set foreground attribute to other non FrameLayout view