在我的应用程序中,我想做类似于平板电脑上的 gmail 应用程序的操作,左侧是项目列表,右侧是包含该项目内容的片段,例如对于 gmail 应用程序,此内容是在选择后下载的. 在我单击一个项目后,我希望它保持突出显示,直到我当然更改了选择。我达到了一个可行的点,但只有当我在同一个项目上单击两次时,所以首先我单击,选择有效,然后该项目返回其“默认”状态,如果我再次单击它,选择器(用于选定状态)可见。
这是我到目前为止所拥有的:
1) 选择器 (listitem_background.xml)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/solid_white" android:state_pressed="false" android:state_selected="false"/>
<item android:drawable="@drawable/listitem_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/listitem_focused" android:state_selected="true"/>
</selector>
2)对于列表项的顶部线性布局:
android:background="@drawable/listitem_background"
(我也尝试将其设置为列表选择器)
3)这是列表视图:
<ListView
android:id="@+id/my_list_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:choiceMode="singleChoice"
android:dividerHeight="1dp"
android:drawSelectorOnTop="true"
android:fadeScrollbars="true"
android:fastScrollEnabled="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:scrollbarFadeDuration="100"
android:scrollbars="vertical" />
4)在代码部分我试着玩这个:
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
view.setSelected(true);
...
}
[编辑] 事实上,我注意到在屏幕右侧提交片段后选择丢失了。如果我不提交片段,它就像一个魅力......我想我在选择器中需要这样的东西:
<item android:drawable="@drawable/listitem_focused" android:state_activated="true" android:state_focused="false"/>
但显然不是这个……