Cip*_*ian 11 android listview highlight selector
在我的应用程序中,我想要在平板电脑上执行类似于gmail应用程序的操作,在左侧有项目列表,在右边有一个包含该项目内容的片段,就像gmail app一样,这些内容在选择后正在下载.点击一个项目后,我希望它保持高亮显示,直到我改变选择.我达到了这个有效的点,但只有当我在同一个项目上点击两次时,所以首先我点击,选择工作,然后项目回到'默认'状态,如果我再次点击它,选择器(选择)状态)是可见的.
这是我到目前为止:
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>
Run Code Online (Sandbox Code Playgroud)
2)对于列表项的顶部线性布局:
android:background="@drawable/listitem_background"
Run Code Online (Sandbox Code Playgroud)
(我尝试将其设置为listselector,以及)
3)这是ListView:
<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" />
Run Code Online (Sandbox Code Playgroud)
4)在代码部分我试着用这个:
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
view.setSelected(true);
...
}
Run Code Online (Sandbox Code Playgroud)
[编辑]实际上我注意到在屏幕右侧提交片段后选择丢失了.如果我不提交片段,它就像魅力......我想我在选择器中需要这样的东西:
<item android:drawable="@drawable/listitem_focused" android:state_activated="true" android:state_focused="false"/>
Run Code Online (Sandbox Code Playgroud)
但显然不是这个......
Cip*_*ian 45
好的,终于得到了答案.
我的想法是在选择器中使用state_activated
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE)
Run Code Online (Sandbox Code Playgroud)
在代码中,或
android:choiceMode="singleChoice"
Run Code Online (Sandbox Code Playgroud)
当然,在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_activated="false"/>
<item android:drawable="@drawable/solid_white" android:state_activated="false" android:state_pressed="false"/>
<item android:drawable="@drawable/listitem_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/listitem_focused" android:state_activated="true"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
这是列表项布局应该是这样的:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/listitem_background"
android:orientation="vertical" >
...
<LinearLayout/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33865 次 |
| 最近记录: |