我知道我们可以android:background="?android:attr/activatedBackgroundIndicator"
用来确保“激活”时突出显示视图。我在几个项目中使用过它,效果很好;但是,使用与以前非常相似的代码,它似乎对我不起作用,因为通过ActionMode
.
这是 ListView 项:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/activatedBackgroundIndicator"
android:dividerPadding="16dp"
android:orientation="horizontal"
android:divider="?android:attr/dividerHorizontal"
android:showDividers="middle"
android:minHeight="64dp" >
<ImageView
android:id="@id/drag_handle"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center_vertical"
android:padding="8dp"
android:src="?attr/action_drag" />
<TextView
android:id="@+id/item_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:ellipsize="marquee"
android:maxLines="2"
android:paddingRight="8dp"
android:paddingLeft="8dp"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
这是实际的 ListView 布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.lazybits.sidekick"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.mobeta.android.dslv.DragSortListView
android:id="@android:id/list"
android:drawSelectorOnTop="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:collapsed_height="2dp"
app:drag_enabled="true"
app:drag_handle_id="@id/drag_handle"
app:drag_scroll_start="0.33"
app:drag_start_mode="onDown"
app:float_alpha="0.6"
app:float_background_color="?attr/bg_drag_item"
app:max_drag_scroll_speed="0.5"
app:slide_shuffle_speed="0.3"
app:use_default_controller="true" />
<TextView
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textSize="22sp"
android:gravity="center_vertical|center_horizontal"
android:text="@string/no_tasks" />
</LinearLayout>
请注意,我确实尝试过使用和不使用android:drawSelectorOnTop="true"
,这没有任何区别。
ActionMode 获取了正在选择项目的事实,因为我有一个 Log 事件告诉我,我设置 ActionMode 的标题以显示所选项目的数量;但是,即使项目已“激活”,它们也不会保持“突出显示”。
这是 ActionMode 工作的快速图像,但未突出显示项目。