ItemTouchHelperのSwipeDismiss
4720 ワード
参照
This is a utility class to add swipe to dismiss and drag & drop support to RecyclerView.
それは非常に強力なツールで、ViewDragHelperと同じように感じますが、ItemTouchHelperはその名の通りitemのtouchイベントを処理しています.
サイドスライド削除、ドラッグ機能を簡単に実現できます.
今日は、それを持って次のサイドスライド削除を実現します!~
スタート
まず、ItemTouchHelperの構造方法を見てみましょう.ItemTouchHelper(Callback callback)Callbackに転送する必要があります.
ちょうどAndroidはわがままで、SimpleCallbackを実現してくれました.
さらに、注釈にサンプルを書いてくれました!!!興味のある学生は行ってみてもいいです.ここではあげません.
次はコードを!
Adapterの定義
このadapterは特に何もなくて、とても简単で、みんなができることを信じます
RecyclerViewの定義
垂直リストのスタイルに設定し、上のAdapterに関連付けます.
ItemTouchHelperをインスタンス化
ItemTouchHelperをインスタンス化する前に、SimpleCallbackの構造方法を見てみましょう.
ItemTouchHelper.SimpleCallback(int dragDirs, int swipeDirs)
dragDirsはドラッグしたい方向を表します
swipe Dirsスライドしたい方向
それぞれの値があり、よく理解できます.
LEFT
RIGHT
START
END
UP
DOWN
に着手
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0822/3349.html
http://blog.csdn.net/easion_zms/article/details/47147191
http://www.open-open.com/lib/view/open1435287807716.html
RecyclerViewのドラッグとスライドの第1部:基本的なItemTouchHelperの例
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0630/3123.html
RecyclerViewのドラッグとスライド第2部:ドラッグ、Grid、カスタムアニメーション
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0724/3219.html
非常に使いやすいスライド削除ライブラリで、Android用のRecyclerViewで、水平方向と垂直方向のスライド削除をサポートしています.
http://www.open-open.com/lib/view/open1445773975085.html
This is a utility class to add swipe to dismiss and drag & drop support to RecyclerView.
それは非常に強力なツールで、ViewDragHelperと同じように感じますが、ItemTouchHelperはその名の通りitemのtouchイベントを処理しています.
サイドスライド削除、ドラッグ機能を簡単に実現できます.
今日は、それを持って次のサイドスライド削除を実現します!~
スタート
まず、ItemTouchHelperの構造方法を見てみましょう.ItemTouchHelper(Callback callback)Callbackに転送する必要があります.
ちょうどAndroidはわがままで、SimpleCallbackを実現してくれました.
さらに、注釈にサンプルを書いてくれました!!!興味のある学生は行ってみてもいいです.ここではあげません.
次はコードを!
Adapterの定義
このadapterは特に何もなくて、とても简単で、みんなができることを信じます
public static class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder> implements View.OnClickListener{
private Context mContext;
private List<String>mDatas;
public ListAdapter(Context context,List<String> data){
mDatas= data;
mContext = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.material_list_item, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.text.setText(mDatas.get(position));
holder.text.setTag(position);
holder.text.setOnClickListener(this);
}
@Override
public int getItemCount() {
return mDatas.size();
}
@Override
public void onClick(View v) {
TextView tv = (TextView) v;
Toast.makeText(mContext, tv.getText()+";;"+tv.getTag(), Toast.LENGTH_SHORT).show();
}
public static class ViewHolder extends RecyclerView.ViewHolder{
TextView text;
public ViewHolder(View view){
super(view);
text = (TextView) view.findViewById(R.id.iv_item);
}
}
}
RecyclerViewの定義
垂直リストのスタイルに設定し、上のAdapterに関連付けます.
mRvList.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
mRvList.setAdapter(mAdapter);
ItemTouchHelperをインスタンス化
ItemTouchHelperをインスタンス化する前に、SimpleCallbackの構造方法を見てみましょう.
ItemTouchHelper.SimpleCallback(int dragDirs, int swipeDirs)
dragDirsはドラッグしたい方向を表します
swipe Dirsスライドしたい方向
それぞれの値があり、よく理解できます.
LEFT
RIGHT
START
END
UP
DOWN
に着手
// 0 , ItemTouchHelper.RIGHT
new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {
//
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
Log.d(TAG, "onSwiped() called with " + "viewHolder = [" + viewHolder + "], direction = [" + direction + "]");
// viewHolder position
int position = viewHolder.getAdapterPosition();
mData.remove(position);
mAdapter.notifyItemRemoved(position);
Toast.makeText(getActivity(), " position:"+position, Toast.LENGTH_SHORT).show();
}
// ...
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
Log.d(TAG, "onMove() called with " + "recyclerView = [" + recyclerView + "], viewHolder = [" + viewHolder + "], target = [" + target + "]");
return false;
}
}).attachToRecyclerView(mRvList);
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0822/3349.html
http://blog.csdn.net/easion_zms/article/details/47147191
http://www.open-open.com/lib/view/open1435287807716.html
RecyclerViewのドラッグとスライドの第1部:基本的なItemTouchHelperの例
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0630/3123.html
RecyclerViewのドラッグとスライド第2部:ドラッグ、Grid、カスタムアニメーション
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0724/3219.html
非常に使いやすいスライド削除ライブラリで、Android用のRecyclerViewで、水平方向と垂直方向のスライド削除をサポートしています.
http://www.open-open.com/lib/view/open1445773975085.html