gpt4 book ai didi

android - DragSortListView 无法在 SwipeRefreshLayout 上向下拖动

转载 作者:太空狗 更新时间:2023-10-29 14:11:50 33 4
gpt4 key购买 nike

我在 SwipeRefreshLayout 中使用 DragSortListView ( https://github.com/bauerca/drag-sort-listview ) 使其能够“下拉刷新”和可拖动 ListView 。这是我的 XML:

<android.support.v4.widget.SwipeRefreshLayout
android:layout_below="@id/div_subtitle"
android:id="@+id/srl_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">


<com.mobeta.android.dslv.DragSortListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
dslv:drag_enabled="true"
dslv:track_drag_sort="false"
android:divider="@null"
dslv:use_default_controller="false"
tools:listitem="@layout/list_kkategori" />
</android.support.v4.widget.SwipeRefreshLayout>

这是我的 ListView 元素的 XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:paddingRight="@dimen/right_margin"
android:paddingLeft="@dimen/left_margin"
android:background="@color/background"
android:layout_height="50dp">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/container_side_dropshadow">

<ImageView
android:id="@+id/iv_handler"
android:layout_width="50dp"
android:scaleType="fitXY"
android:layout_height="20dp"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:src="@drawable/draghandler" />

<TextView
android:id="@+id/tv_nama"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/textBlack"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@id/iv_handler"
android:text="Nama Kategori"
android:textSize="17sp" />

<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_alignParentBottom="true"
android:background="@color/dividerColor"
android:layout_marginLeft="@dimen/left_divider_margin"
android:layout_marginRight="@dimen/right_divider_margin" />

</RelativeLayout>

</RelativeLayout>

这是我在 fragment 的 onCreateView 上调用的 DragSortListView 初始化:

dslv = (DragSortListView) v.findViewById(android.R.id.list);
dslv.addHeaderView(View.inflate(getActivity(), R.layout.list_header, null), null, false);
dslv.addFooterView(View.inflate(getActivity(), R.layout.list_footer, null), null, false);

dslvController = new DragSortController(dslv);
dslvController.setDragHandleId(R.id.iv_handler);
dslvController.setRemoveEnabled(false);
dslvController.setSortEnabled(true);
dslvController.setDragInitMode(DragSortController.ON_DOWN);
dslvController.setRemoveMode(DragSortController.FLING_REMOVE);
dslv.setFloatViewManager(dslvController);
dslv.setOnTouchListener(dslvController);
dslv.setDragEnabled(true);

但是,不知何故DragSortListView 无法向下拖动任何列表项,但向上拖动功能仍然有效。我怀疑当我向下拖动列表元素时 DragSortListView 中的 onTouchListener 以某种方式被 SwipeRefreshLayout 的 onTouchListener 覆盖。

这个问题有什么解决方案或解决方法吗?我需要在我的应用程序中使用滑动刷新和拖动 ListView 这两个功能。

最佳答案

使用 dslvController.setDragInitMode(DragSortController.ON_LONG_PRESS); 而不是 dslvController.setDragInitMode(DragSortController.ON_DOWN);


我的错,向下拖动仍然有问题。一种肮脏的解决方法是在向下拖动项目之前将其稍微向上移动。我知道这有点糟透了,我正在阅读 SwipeRefreshLayout 上的文档,如果我发现任何内容,将会更新。抱歉错误的解决方案。

关于android - DragSortListView 无法在 SwipeRefreshLayout 上向下拖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27079545/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com