mun*_*kay 9 android listview drag-and-drop draggable onitemclicklistener
我正在使用Carl Bauer(https://github.com/bauerca/drag-sort-listview)的优秀drag-sort-listview来实现一个支持拖动排序的列表视图.但是,我的要求是不需要列表上的拖动句柄,而是允许用户使用项目本身拖动列表项.
通过将@ id/drag属性设置为列表项本身,我已经完成了该部分的工作.但是,它具有不响应itemClick和itemLongClick事件的副作用.
有没有办法让项目点击/长按点工作而没有单独的可拖动布局?
作为参考,我的代码如下所示 -
ListView.xml:
<com.mobeta.android.dslv.DragSortListView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:dslv="http://schemas.android.com/apk/res/com.myproject"
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
dslv:collapsed_height="1dp"
dslv:drag_scroll_start="0.33"
dslv:max_drag_scroll_speed="0.5" />
Run Code Online (Sandbox Code Playgroud)
ItemView.xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="@dimen/list_item_height"
android:orientation="horizontal">
<CheckBox
android:id="@+id/check_box"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical"/>
<TextView
android:id="@+id/drag"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:padding="@dimen/list_padding"
android:gravity="center_vertical" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
Activity.java:
DragSortListView listView = (DragSortListView) view.findViewById(R.id.list);
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
Toast.makeText(arg0.getContext(), ((TextView)arg1).getText(), Toast.LENGTH_SHORT).show();
return false;
}
});
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> listView, View itemView, int index,
long id) {
Toast.makeText(getView().getContext(), ((TextView)itemView).getText(), Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
作为奖励,如果任何人都可以帮助启用多项选择,除了点击/长按,这将是非常感谢.
谢谢!
小智 5
为了能够在列表中使用OnItemClick和OnItemLongClick,您需要将此参数设置为com.mobeta.android.dslv.DragSortListView布局.
dslv:drag_start_mode="onMove"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9593 次 |
| 最近记录: |