【发布时间】:2013-11-28 14:50:01
【问题描述】:
然后我将ListView 设置为:
<ListView
android:id="@+id/list_menu_nav"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:choiceMode="singleChoice"
android:listSelector="#fff">
</ListView>
适配器设置为:
navMenu = (ListView) findViewById( R.id.list_menu_nav );
navMenu.setAdapter( new ArrayAdapter<String>( this,
android.R.layout.simple_list_item_1,
menuList ) );
当我触摸一个项目时,它会得到一个白色背景(正如我设置的那样)。但是,当我对如下项目执行单击时,它被选中但没有得到白色背景。
navMenu.performItemClick( navMenu.getChildAt( 1 ), 1, navMenu.getAdapter().getItemId( 1 ) );
我知道它被选中是因为其他一切都按预期工作(侦听器调用,getCheckedItemPosition 返回正确值)。
在这种情况下,正确的方法是什么?用自定义布局替换布局并自己制作突出显示,或者有没有使用相同默认布局的方法?
【问题讨论】:
-
也许你需要
invalidateitem才能执行点击。 -
我测试过了。在 performClick 之后,
navMenu.invalidate()和navMenu.requestLayout()也不起作用。 :\ -
@EugenMartynov 据说
listSelector标记了列表中选择的内容。按照你说的,也许android团队应该把名字改成listSelectorForUserClicks。 -
然后使用
selector。
标签: android