use of android.support.v7.widget.helper.ItemTouchHelper in project 91Pop by DanteAndroid.
the class BaseMainFragment method initItemTouchHelper.
private void initItemTouchHelper(final SortCategoryAdapter sortCategoryAdapter, RecyclerView sortCategoryRecyclerView, final List<Category> categoryList) {
// itemHelper的回调
ItemTouchHelper.Callback callback = new ItemTouchHelper.Callback() {
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
// 也就是说返回值是组合式的
// makeMovementFlags (int dragFlags, int swipeFlags),看下面的解释说明
int swipFlag = 0;
// 如果也监控左右方向的话,swipFlag=ItemTouchHelper.LEFT|ItemTouchHelper.RIGHT;
int dragflag = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
// 等价于:0001&0010;多点触控标记触屏手指的顺序和个数也是这样标记哦
return makeMovementFlags(dragflag, swipFlag);
}
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
// 直接按照文档来操作啊,这文档写得太给力了,简直完美!
sortCategoryAdapter.notifyItemMoved(viewHolder.getAdapterPosition(), target.getAdapterPosition());
// 注意这里有个坑的,itemView 都移动了,对应的数据也要移动
Collections.swap(categoryList, viewHolder.getAdapterPosition(), target.getAdapterPosition());
return true;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
// 暂不处理,处理左右滑动
}
@Override
public boolean canDropOver(RecyclerView recyclerView, RecyclerView.ViewHolder current, RecyclerView.ViewHolder target) {
return true;
}
@Override
public boolean isLongPressDragEnabled() {
// return true后,可以实现长按拖动排序和拖动动画了
return false;
}
@Override
public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) {
viewHolder.itemView.setBackgroundColor(ContextCompat.getColor(context, R.color.sort_category_drag_color));
}
super.onSelectedChanged(viewHolder, actionState);
}
@Override
public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
super.clearView(recyclerView, viewHolder);
viewHolder.itemView.setBackgroundColor(0);
}
};
// 1.创建item helper
mItemTouchHelper = new ItemTouchHelper(callback);
// 2.绑定到recyclerview上面去
mItemTouchHelper.attachToRecyclerView(sortCategoryRecyclerView);
}
use of android.support.v7.widget.helper.ItemTouchHelper in project SMSBlocker by sagarpawardev.
the class StarredSMSActivity method process.
private void process() {
final String methodName = "process()";
log.justEntered(methodName);
adapter = new RVStarredSMSAdapter(this, smses, this);
RVDragCallback dragCallback = new RVDragCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT);
new ItemTouchHelper(dragCallback).attachToRecyclerView(rvStarredSMS);
layoutManager = new LinearLayoutManager(this);
rvStarredSMS.setLayoutManager(layoutManager);
rvStarredSMS.setAdapter(adapter);
log.returning(methodName);
}
use of android.support.v7.widget.helper.ItemTouchHelper in project GeekNews by codeestX.
the class GoldManagerActivity method initEventAndData.
@Override
protected void initEventAndData() {
setToolBar(toolBar, "首页特别展示");
mList = ((GoldManagerBean) getIntent().getParcelableExtra(Constants.IT_GOLD_MANAGER)).getManagerList();
mAdapter = new GoldManagerAdapter(mContext, mList);
rvGoldManagerList.setLayoutManager(new LinearLayoutManager(mContext));
rvGoldManagerList.setAdapter(mAdapter);
mCallback = new DefaultItemTouchHelpCallback(new DefaultItemTouchHelpCallback.OnItemTouchCallbackListener() {
@Override
public void onSwiped(int adapterPosition) {
}
@Override
public boolean onMove(int srcPosition, int targetPosition) {
if (mList != null) {
Collections.swap(mList, srcPosition, targetPosition);
mAdapter.notifyItemMoved(srcPosition, targetPosition);
return true;
}
return false;
}
});
mCallback.setDragEnable(true);
mCallback.setSwipeEnable(false);
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(mCallback);
itemTouchHelper.attachToRecyclerView(rvGoldManagerList);
}
use of android.support.v7.widget.helper.ItemTouchHelper in project VirtualApp by asLody.
the class HomeActivity method initLaunchpad.
private void initLaunchpad() {
mLauncherView.setHasFixedSize(true);
StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(3, OrientationHelper.VERTICAL);
mLauncherView.setLayoutManager(layoutManager);
mLaunchpadAdapter = new LaunchpadAdapter(this);
SmartRecyclerAdapter wrap = new SmartRecyclerAdapter(mLaunchpadAdapter);
View footer = new View(this);
footer.setLayoutParams(new StaggeredGridLayoutManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, VUiKit.dpToPx(this, 60)));
wrap.setFooterView(footer);
mLauncherView.setAdapter(wrap);
mLauncherView.addItemDecoration(new ItemOffsetDecoration(this, R.dimen.desktop_divider));
ItemTouchHelper touchHelper = new ItemTouchHelper(new LauncherTouchCallback());
touchHelper.attachToRecyclerView(mLauncherView);
mLaunchpadAdapter.setAppClickListener((pos, data) -> {
if (!data.isLoading()) {
if (data instanceof AddAppButton) {
onAddAppButtonClick();
}
mLaunchpadAdapter.notifyItemChanged(pos);
mPresenter.launchApp(data);
}
});
}
use of android.support.v7.widget.helper.ItemTouchHelper in project GeekNews by codeestX.
the class LikeFragment method initEventAndData.
@Override
protected void initEventAndData() {
mList = new ArrayList<>();
mAdapter = new LikeAdapter(mContext, mList);
rvLikeList.setLayoutManager(new LinearLayoutManager(mContext));
rvLikeList.setAdapter(mAdapter);
mCallback = new DefaultItemTouchHelpCallback(new DefaultItemTouchHelpCallback.OnItemTouchCallbackListener() {
@Override
public void onSwiped(int adapterPosition) {
// 滑动删除的时候,从数据库、数据源移除,并刷新UI
if (mList != null) {
mPresenter.deleteLikeData(mList.get(adapterPosition).getId());
mList.remove(adapterPosition);
mAdapter.notifyItemRemoved(adapterPosition);
}
}
@Override
public boolean onMove(int srcPosition, int targetPosition) {
if (mList != null) {
// 更换数据库中的数据Item的位置
boolean isPlus = srcPosition < targetPosition;
mPresenter.changeLikeTime(mList.get(srcPosition).getId(), mList.get(targetPosition).getTime(), isPlus);
// 更换数据源中的数据Item的位置
Collections.swap(mList, srcPosition, targetPosition);
// 更新UI中的Item的位置,主要是给用户看到交互效果
mAdapter.notifyItemMoved(srcPosition, targetPosition);
return true;
}
return false;
}
});
mCallback.setDragEnable(true);
mCallback.setSwipeEnable(true);
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(mCallback);
itemTouchHelper.attachToRecyclerView(rvLikeList);
mPresenter.getLikeData();
}
Aggregations