我在列表视图中有一个记录列表,希望用户能够使用拖放方法对其进行重新排序。我已经在其他应用程序中看到了这一点,但我还没有找到针对它的教程。它必须是其他人也需要的东西。有没有人能给我指点一些这样做的代码?
发布于 2016-03-24 16:46:55
现在很容易用ItemTouchHelper实现RecyclerView
。只需覆盖ItemTouchHelper.Callback
中的onMove
方法
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
mMovieAdapter.swap(viewHolder.getAdapterPosition(), target.getAdapterPosition());
return true;
}
有关这方面的非常好的教程可以在medium.com:Drag and Swipe with RecyclerView上找到
发布于 2013-08-26 17:37:19
我添加这个答案是为了让那些在谷歌上搜索这个问题的人知道..
最近DevBytes (ListView Cell Dragging and Rearranging)的一个插曲解释了如何做到这一点
你可以在here上找到它,也可以找到示例代码。
这段代码主要做的是通过listview
的扩展创建一个支持单元格拖动和交换的dynamic listview
。为了能够使用DynamicListView
而不是基本的ListView
,您已经实现了一个具有拖放功能的ListView。
发布于 2016-03-24 16:29:17
DragListView库可以很好地支持自定义动画,比如仰角动画。它还会定期维护和更新。
下面是你如何使用它:
1:首先将库添加到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:创建从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扩展的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;
}
}
有关更多详细信息,请访问https://github.com/woxblom/DragListView
https://stackoverflow.com/questions/2909311
复制相似问题