我正在尝试在选中时突出显示抽屉列表项。
我的导航抽屉ListView是:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
.
.
.
<LinearLayout
android:id="@+id/drawer_view"
android:layout_width="304dp"
android:layout_height="match_parent"
android:layout_gravity="left|start"
android:fitsSystemWindows="true">
<!-- Your drawer content -->
<ListView
android:id="@+id/left_drawer"
style="@style/NavDrawer"
android:layout_width="320dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:listSelector="@drawable/drawer_listview_background_selector"
android:background="@color/icons"
android:choiceMode="singleChoice"
android:divider="@color/divider"
android:dividerHeight="0dp" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
抽屉列表项目是:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/drawer_listview_background_selector"
android:gravity="center_vertical"
android:minHeight="48dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textSize="14sp"
android:textColor="@color/primary_text" />
选择器是:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:state_pressed="true" android:drawable="@color/primary" />
<item android:state_enabled="true" android:state_focused="true" android:drawable="@color/primary" />
<item android:state_enabled="true" android:state_selected="true" android:drawable="@color/primary" />
<item android:drawable="@drawable/normal" />
</selector>
在我正在做的onItemSelected方法中:
// Highlight the selected item, update the title, and close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(mPlanetTitles[position]);
mDrawerLayout.closeDrawers();
// mDrawerLayout.closeDrawer(R.id.drawer_view);
要注意的是,如果我使用
android:background="?android:attr/activatedBackgroundIndicator"
对于ListItem布局它工作得非常好,但它在我的Android 4.4.4上应用了Holo Color。
我已经阅读了大多数流行的SO问题并经过测试但失败了。
答案 0 :(得分:1)
向android:state_activated
添加<item>
<selector>
,选择颜色或可绘制用于激活状态。