RecyclerView drag

通过ItemtouchHelper.


packagecom.wds.testdragrecyclerview;

importandroid.support.v7.app.AppCompatActivity;

importandroid.os.Bundle;

importandroid.support.v7.widget.GridLayoutManager;

importandroid.support.v7.widget.RecyclerView;

importandroid.support.v7.widget.helper.ItemTouchHelper;

importandroid.util.Log;

importandroid.view.LayoutInflater;

importandroid.view.View;

importandroid.view.ViewGroup;

importandroid.widget.ImageView;

public classMainActivityextendsAppCompatActivity {

privateRecyclerViewmDragView;

@Override

protected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mDragView= (RecyclerView) findViewById(R.id.dragview);

mDragView.setLayoutManager(newGridLayoutManager(this,4));

mDragView.setAdapter(newMyAdapter());

ItemTouchHelper helper =newItemTouchHelper(newItemTouchHelper.Callback() {

@Override

public intgetMovementFlags(RecyclerView recyclerView,RecyclerView.ViewHolder viewHolder) {

Log.e("wds","getMovementFlags");

intdragFlag = ItemTouchHelper.LEFT| ItemTouchHelper.DOWN| ItemTouchHelper.UP| ItemTouchHelper.RIGHT;

intswipeFlag = ItemTouchHelper.START| ItemTouchHelper.END;

returnmakeMovementFlags(dragFlag,swipeFlag);

}

@Override

public booleanonMove(RecyclerView recyclerView,RecyclerView.ViewHolder viewHolder,RecyclerView.ViewHolder target) {

Log.e("wds","onMove:"+ viewHolder.getAdapterPosition() +";"+ target.getAdapterPosition());

recyclerView.getAdapter().notifyItemMoved(viewHolder.getAdapterPosition(),target.getAdapterPosition());

return false;

}

@Override

public voidonSwiped(RecyclerView.ViewHolder viewHolder, intdirection) {

Log.e("wds","onSwiped");

}

});

helper.attachToRecyclerView(mDragView);

}

public static classMyAdapterextendsRecyclerView.Adapter {

@Override

publicMyViewHolderonCreateViewHolder(ViewGroup parent, intviewType) {

return newMyViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item, null));

}

@Override

public voidonBindViewHolder(MyViewHolder holder, intposition) {

}

@Override

public intgetItemCount() {

return10;

}

}

public static classMyViewHolderextendsRecyclerView.ViewHolder {

public finalImageViewimageView;

publicMyViewHolder(View itemView) {

super(itemView);

imageView= (ImageView) itemView.findViewById(R.id.imageView);

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • jar compile'com.android.support:recyclerview-v7:26+' comp...
    吃货养成记阅读 438评论 0 1
  • Tangram是阿里出品、用于快速实现组合布局的框架模型,在手机天猫Android&iOS版 内广泛使用 该框架提...
    wintersweett阅读 3,382评论 0 1
  • 题外话 前些天在使用Materal Design风格的控件时,用到了CoordinatorLayout组件+Too...
    _小小庄阅读 3,709评论 0 4
  • 源自《穷查理宝典》第四章第十一讲人类误判心理学 读书会RIA规则 R:书中的一段原文: I:用自己的理解来描述这些...
    查理芒格研习会阅读 771评论 0 0
  • 只是想测试一下简书的功能是不是就像同事说的那么神奇? 头回使用,算是体验吧。也可以是一个宣告,我也开始用简书啦。🤗🤗
    Lilyisme阅读 177评论 0 1