Tak*_*rel 3 android listview glow
这是我的问题:我有一个Activity包含ListView列出不同位置的a,以及MapView带有这些位置标记的a .
我现在想要的是,当MapView点击其中一个标记时ListView,要选择相应的项目并发光(就像它被点击一样).
我找到了方法ListView.setSelection(int)和ListView.requestChildFocus(View, View).第一个几乎完全符合我的要求(如果我有一个很长的列表,它会经过它直到项目可见)但它没有发光效果来显式显示该项目.关于第二个,我不确定第二个参数是什么(它是活动中先前关注的视图?).
那么,有没有办法让项目发光?就像使用物理键盘选择它一样.
谢谢.
编辑:辅助问题,单击ListView项目时是否可以将标准drawable用作背景?它可以在R.attr中找到喜欢的listPreferredItemHeight东西吗?
您想要检查它们,而不是选择项目.这允许您使用a StateListDrawable来更改项目的外观,因为项目在处于触摸模式时不会保持选中状态.您必须将您ListView置于单一选择模式,使listview项目可检查,并使用StateListDrawable更改已检查项目的外观.
要将ListView置于单选模式:
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
Run Code Online (Sandbox Code Playgroud)
然后,当您想要突出显示您的项目时ListView,请执行以下操作:
getListView().setItemChecked(index, true);
Run Code Online (Sandbox Code Playgroud)
我相信你的行布局的根项必须实现Checkable,你应该能够找到CheckableRelativeLayout或CheckableLinearLayout在线的例子.
这使您的项目"已选中"但您仍然需要使其发光,因此在您的行的布局中,您必须使用a StateListDrawable来更改其外观,方法是将其添加到布局中:
android:background="@color/list_view_item_selector"
Run Code Online (Sandbox Code Playgroud)
并创建一个color\list_view_item_selector.xml这样的文件:
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@color/selected_item" />
<item android:drawable="@android:color/transparent" />
</selector>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1905 次 |
| 最近记录: |