android开发分享Android列表视图拖放sorting

我有一个listview中的logging列表,我希望用户能够使用拖放方法重新sorting。 我已经看到这在其他应用程序中实现,但我还没有find一个教程。 这一定是别人需要的东西。 任何人都可以指向我一些代码做这个?

    我一直在这个工作了一段时间了。 很难得到正确的,我不要求我做,但我很高兴。 我的代码和几个演示可以在find

    它的使用与TouchInterceptor(代码所基于的)非常相似,尽pipe已经做了重大的实现改变。

    DragSortListView在拖动和洗牌项目时具有平滑和可预测的滚动。 物品洗牌与拖动/浮动物品的位置更加一致。 支持异构高度列表项目。 拖动滚动是可定制的(我展示了通过长列表快速拖动滚动—不是一个应用程序想到)。 页眉/页脚是尊重。 等等。?? 看一看。

    我join这个答案是为了那些谁的谷歌这个..

    最近有一段DevBytes( ListView Cell拖拽和重排 ),解释了如何做到这一点

    你可以在这里find它的示例代码在这里 。

    这个代码基本上做的是它通过支持单元格拖放和交换的listview的扩展创build一个dynamic listview listview 。 所以你可以使用DynamicListView而不是基本的ListView ,这就是你已经实现了一个带有拖放的ListView。

    现在使用ItemTouchHelper实现RecyclerView非常简单。 只需重写onMove方法:

      @Override public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { mMovieAdapter.swap(viewHolder.getAdapterPosition(), target.getAdapterPosition()); return true; } 

    关于此的相当不错的教程可以在medium.com上find: 拖动和用RecyclerView刷卡

    DragListView lib这样做非常好,非常好的支持自定义animation,如高程animation。 它也是定期维护和更新的。

    这里是你如何使用它:

    1:先将lib添加到gradle

     dependencies { compile 'com.github.woxthebox:draglistview:1.2.1' } 

    2:从XML中添加列表

     <com.woxthebox.draglistview.DragListView android:id="@+id/draglistview" android:layout_width="match_parent" android:layout_height="match_parent"/> 

    3:设置拖动监听器

     mDragListView.setDragListListener(new DragListView.DragListListener() { @Override public void onItemDragStarted(int position) { } @Override public void onItemDragEnded(int fromPosition, int toPosition) { } }); 

    4:创build一个从DragItemAdapter覆盖的适配器

     public class ItemAdapter extends DragItemAdapter<Pair<Long, String>, ItemAdapter.ViewHolder> public ItemAdapter(ArrayList<Pair<Long, String>> list, int layoutId, int grabHandleId, boolean dragOnLongPress) { super(dragOnLongPress); mLayoutId = layoutId; mGrabHandleId = grabHandleId; setHasStableIds(true); setItemList(list); } 

    5:实现一个从DragItemAdapter.ViewHolder扩展的视图

     public class ViewHolder extends DragItemAdapter.ViewHolder { public TextView mText; public ViewHolder(final View itemView) { super(itemView, mGrabHandleId); mText = (TextView) itemView.findViewById(R.id.text); } @Override public void onItemClicked(View view) { } @Override public boolean onItemLongClicked(View view) { return true; } } 

    有关更多详细信息,请转至

    我发现DragSortListView运行良好,虽然开始它可能会更容易。 下面是一个关于在Android Studio中使用它的内存列表的简要教程:

      以上就是android开发分享Android列表视图拖放sorting相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/520688.html

      (0)
      上一篇 2020年12月7日
      下一篇 2020年12月7日

      精彩推荐