我有一个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