@Override public void onActivityCreated(Bundle state) { Log.d(TAG, "onActivityCreated"); super.onActivityCreated(state); if (state != null) { isRefreshing = state.getBoolean(KEY_IS_REFRESHING); isAddQueueHandling = state.getBoolean(KEY_IS_ADD_QUEUE_HANDLING); currNameIndex = state.getInt(KEY_CURR_NAME_INDEX); cityWeatherList = state.getParcelableArrayList(KEY_CITY_WEATHER_LIST); cityAddQueue = state.getParcelableArrayList(KEY_CITY_ADD_QUEUE); updateRecyclerView(); } else { loadCitiesFromDisk(); } itemTouchCallBack = new ItemTouchHelperAdapter(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT, this, cityWeatherList, true); new ItemTouchHelper(itemTouchCallBack).attachToRecyclerView(recyclerView); }
public ChannelFragmentAdapter(Context context, ItemTouchHelper helper, ChannelListBean channelListBean, RecyclerView view) { this.mInflater = LayoutInflater.from(context); this.mContext = context; this.mItemTouchHelper = helper; this.mRecyclerView = view; this.mChannelListBean = channelListBean; if (channelListBean != null && !BaseTypeUtils.isListEmpty(channelListBean.listChannel)) { for (int i = 0; i < channelListBean.listChannel.size(); i++) { if (channelListBean.listChannel.get(i) != null) { this.mMyChannelItems.add(channelListBean.listChannel.get(i)); if (((Channel) channelListBean.listChannel.get(i)).top == 0) { this.mTopSize++; } if (((Channel) channelListBean.listChannel.get(i)).lock == 1) { this.mLockSize++; } } } this.mImageDownloader = ImageDownloader.getInstance(); } }
@Override public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { //判断当前是否是swipe方式:侧滑。 if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { //1.ItemView--ViewHolder; 2.侧滑条目的透明度程度关联谁?dX(delta增量,范围:当前条目-width~width)。 RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager(); float alpha = 1; if (layoutManager instanceof LinearLayoutManager) { int orientation = ((LinearLayoutManager) layoutManager).getOrientation(); if (orientation == LinearLayoutManager.HORIZONTAL) { alpha = 1 - Math.abs(dY) / viewHolder.itemView.getHeight(); } else if (orientation == LinearLayoutManager.VERTICAL) { alpha = 1 - Math.abs(dX) / viewHolder.itemView.getWidth(); } } viewHolder.itemView.setAlpha(alpha);//1~0 } super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); }
@Override public void onChildDrawOver(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { super.onChildDrawOver(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE && !isViewCreateByAdapter(viewHolder)) { View itemView = viewHolder.itemView; c.save(); if (dX > 0) { c.clipRect(itemView.getLeft(), itemView.getTop(), itemView.getLeft() + dX, itemView.getBottom()); c.translate(itemView.getLeft(), itemView.getTop()); } else { c.clipRect(itemView.getRight() + dX, itemView.getTop(), itemView.getRight(), itemView.getBottom()); c.translate(itemView.getRight() + dX, itemView.getTop()); } mAdapter.onItemSwiping(c, viewHolder, dX, dY, isCurrentlyActive); c.restore(); } }
public FirstPageCustomAdapter(Context context, ItemTouchHelper helper, List<HomeBlock> list, TextView view, RecyclerView recyclerView) { this.mInflater = LayoutInflater.from(context); if (!BaseTypeUtils.isListEmpty(list)) { for (HomeBlock block : list) { if (block != null) { if (TextUtils.equals(block.isLock, "1")) { this.mList.add(this.mLockSize, block); this.mLockSize++; } else { this.mList.add(block); } } } this.mItemTouchHelper = helper; this.mContext = context; if (this.mLockSize == 0) { this.mHeadSize = 1; } else { this.mHeadSize = 2; } this.mSaveView = view; this.mRecyclerView = recyclerView; } }
private void initView() { ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(mContext, R.color.color_Actionbar))); } mCoordinatorLayout = findViewById(R.id.coordinator); RecyclerView recyclerView = findViewById(R.id.recycle_view); recyclerView.setLayoutManager(new LinearLayoutManager(this)); mAdapter = new LocationAdapter(this, new ArrayList<Location>()); @SuppressWarnings("unchecked") SwingBottomInAnimationAdapter animatorAdapter = new SwingBottomInAnimationAdapter(mAdapter, recyclerView); recyclerView.setAdapter(animatorAdapter); ItemTouchHelper.Callback callback = new ItemTouchHelperCallBackNoMove(mAdapter); ItemTouchHelper touchHelper = new ItemTouchHelper(callback); touchHelper.attachToRecyclerView(recyclerView); mView_FABMenu = findViewById(R.id.fab_menu_1); FloatingActionButton addLocation = findViewById(R.id.fab_action_1); addLocation.setVisibility(View.VISIBLE); addLocation.setLabelText(mContext.getResources().getString(R.string.add_location)); addLocation.setOnClickListener(this); }
@Override public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder holder) { //方向:up,down,left,right //常量: int up = ItemTouchHelper.UP;//1 0x0001 int down = ItemTouchHelper.DOWN;//2 0x0010 // ItemTouchHelper.LEFT // ItemTouchHelper.RIGHT //我要监听的拖拽方向是哪两个方向。 int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN|ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; //我要监听的swipe侧滑方向是哪个方向 // int swipeFlags = 0; int swipeFlags = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; int flags = makeMovementFlags(dragFlags, swipeFlags); return flags; }
@Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_overview); setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); final RecyclerView claimItems = findViewById(R.id.claim_items); claimItems.setAdapter(new ClaimItemAdapter( this, this, ClaimApplication.getClaimDatabase().claimItemDao().selectAll() )); new ItemTouchHelper(new SwipeToDeleteCallback()) .attachToRecyclerView(claimItems); }
@Override public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { //dX:水平方向移动的增量(负:往左;正:往右)范围:0~View.getWidth 0~1 if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { //透明度动画 float alpha = 1 - Math.abs(dX) / viewHolder.itemView.getWidth(); viewHolder.itemView.setAlpha(alpha);//1~0 viewHolder.itemView.setScaleX(alpha);//1~0 viewHolder.itemView.setScaleY(alpha);//1~0 } super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); }
@Override protected void initFragment(Bundle savedInstanceState) { super.initFragment(savedInstanceState); setLoadMoreEnable(true); ItemTouchHelperCallback callback = new ItemTouchHelperCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT, this); itemTouchHelper = new ItemTouchHelper(callback); itemTouchHelper.attachToRecyclerView(recyclerView); StickyRecyclerHeadersDecoration headersDecor = new StickyRecyclerHeadersDecoration(adapter); recyclerView.addItemDecoration(headersDecor); StickyRecyclerHeadersTouchListener touchListener = new StickyRecyclerHeadersTouchListener(recyclerView, headersDecor); touchListener.setOnHeaderClickListener((header, position, headerId) -> { //wrong position returned // recyclerView.smoothScrollToPosition(mPresenter.getFirstItemByDate((Long) header.getTag())); }); recyclerView.addOnItemTouchListener(touchListener); }
private void initView() { mRecyclerSrc = (RecyclerView) findViewById(R.id.teach_src); mRecyclerDst = (RecyclerView) findViewById(R.id.teach_dst); GridLayoutManager layoutManagerSrc = new GridLayoutManager(this, 4); GridLayoutManager layoutManagerDst = new GridLayoutManager(this, 4); mRecyclerSrc.setLayoutManager(layoutManagerSrc); mRecyclerDst.setLayoutManager(layoutManagerDst); TeachAdapter srcAdapter = new TeachAdapter(this, getDataSrc()); mRecyclerSrc.setAdapter(srcAdapter); srcAdapter.setListener(this); TeachAdapter detAdapter = new TeachAdapter(this, getDataDst()); mRecyclerDst.setAdapter(detAdapter); detAdapter.setListener(this); ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new ItemTouchCallback(srcAdapter)); itemTouchHelper.attachToRecyclerView(mRecyclerSrc); }
/** * {@inheritDoc} */ @Override public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager(); int dragFlags; int swipeFlags; //Set movement flags based on the Layout Manager and Orientation if (layoutManager instanceof GridLayoutManager || layoutManager instanceof StaggeredGridLayoutManager) { dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; swipeFlags = 0; } else if (Utils.getOrientation(layoutManager) == LinearLayoutManager.VERTICAL) { dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN; swipeFlags = mSwipeFlags > 0 ? mSwipeFlags : ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; } else { dragFlags = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; swipeFlags = mSwipeFlags > 0 ? mSwipeFlags : ItemTouchHelper.UP | ItemTouchHelper.DOWN; } //Disallow item swiping or dragging if (viewHolder instanceof ViewHolderCallback) { ViewHolderCallback viewHolderCallback = (ViewHolderCallback) viewHolder; if (!viewHolderCallback.isDraggable()) dragFlags = 0; if (!viewHolderCallback.isSwipeable()) swipeFlags = 0; } return makeMovementFlags(dragFlags, swipeFlags); }
/** * {@inheritDoc} * * @see #toggleActivation() * @since 5.0.0-b1 */ @Override @CallSuper public void onClick(View view) { int position = getFlexibleAdapterPosition(); if (!mAdapter.isEnabled(position)) return; // Experimented that, if LongClick is not consumed, onClick is fired. We skip the // call to the listener in this case, which is allowed only in ACTION_STATE_IDLE. if (mAdapter.mItemClickListener != null && mActionState == ItemTouchHelper.ACTION_STATE_IDLE) { if (FlexibleAdapter.DEBUG) Log.v(TAG, "onClick on position " + position + " mode=" + mAdapter.getMode()); // Get the permission to activate the View from user if (mAdapter.mItemClickListener.onItemClick(position)) { // Now toggle the activation toggleActivation(); } } }
/** * 设置移动方向 模式 * * @param recyclerView * @param viewHolder * @return */ @Override public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { int dragflag = 0; int swipeflag = 0; if (recyclerView.getLayoutManager() instanceof GridLayoutManager) { if (canswitch) dragflag = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; if (canswipe) swipeflag = ItemTouchHelper.END; } else { if (canswitch) dragflag = ItemTouchHelper.UP | ItemTouchHelper.DOWN; if (canswipe) swipeflag = ItemTouchHelper.END; } return makeMovementFlags(dragflag, swipeflag); }
@Override public void onChildDrawOver(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { super.onChildDrawOver(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { View itemView = viewHolder.itemView; c.save(); if (dX > 0) { c.clipRect(itemView.getLeft(), itemView.getTop(), itemView.getLeft() + dX, itemView.getBottom()); c.translate(itemView.getLeft(), itemView.getTop()); } else { c.clipRect(itemView.getRight() + dX, itemView.getTop(), itemView.getRight(), itemView.getBottom()); c.translate(itemView.getRight() + dX, itemView.getTop()); } mAdapter.onItemSwiping(c, viewHolder, dX, dY, isCurrentlyActive); c.restore(); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_linear); List<String> list = new ArrayList<>(); for (int i = 1; i <= 20; i++) { list.add("Hello, I am " + i); } Adapter adapter = new Adapter(this, this); adapter.addAll(list); RecyclerView recyclerView = (RecyclerView) findViewById(R.id.linear_recycler_view); recyclerView.setHasFixedSize(true); recyclerView.setAdapter(adapter); recyclerView.setLayoutManager(new LinearLayoutManager(this)); ItemTouchHelper.Callback callback = new ItemTouchHelperCallBack(adapter); mItemTouchHelper = new ItemTouchHelper(callback); mItemTouchHelper.attachToRecyclerView(recyclerView); }
@Override public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); // Fade out the view as it is swiped out of the parent's bounds if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { View itemView = viewHolder.itemView; final float alpha = ALPHA_FULL - Math.abs(dX) / (float) itemView.getWidth(); itemView.setAlpha(alpha); } }
@Override public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { // Fade out the view as it is swiped out of the parent's bounds final float alpha = ALPHA_FULL - Math.abs(dX) / (float) viewHolder.itemView.getWidth(); viewHolder.itemView.setAlpha(alpha); viewHolder.itemView.setTranslationX(dX); } else { super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); } }
@Override public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { if (actionState != ItemTouchHelper.ACTION_STATE_IDLE && viewHolder instanceof ListBaseViewHolder) { ListBaseViewHolder vh = (ListBaseViewHolder) viewHolder; if (vh.getComponent() != null) { mDragHelper.onDragStart(vh.getComponent(), vh.getAdapterPosition()); } } super.onSelectedChanged(viewHolder, actionState); }
@Override public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { ShoppingListAdapter.ViewHolder vh = (ShoppingListAdapter.ViewHolder) viewHolder; vh.isSwiped = true; if (direction == ItemTouchHelper.START) { listener.onSwipeLeft(vh); } else if (direction == ItemTouchHelper.END) { listener.onSwipeRight(vh); } }
private void initView() { ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(mContext, R.color.color_Actionbar))); } mView_Coordinator = findViewById(R.id.coordinator); mView_SubjectName = findViewById(R.id.week_lesson_detail_subject_name); mView_SubjectArrow = findViewById(R.id.arrow); mView_Weekday = findViewById(R.id.week_lesson_detail_weekday); mView_Repeat = findViewById(R.id.week_lesson_detail_repeat); mView_Day = findViewById(R.id.week_lesson_detail_day); mView_FABMenu = findViewById(R.id.fab_menu_1); FloatingActionButton addDayLesson = findViewById(R.id.fab_action_1); FloatingActionButton editWeekLesson = findViewById(R.id.fab_action_2); addDayLesson.setVisibility(View.VISIBLE); editWeekLesson.setVisibility(View.VISIBLE); addDayLesson.setLabelText(mResources.getString(R.string.add_day_lesson)); editWeekLesson.setLabelText(mResources.getString(R.string.edit_week_lesson)); editWeekLesson.setImageResource(R.drawable.ic_edit_white_24dp); RecyclerView mView_RecyclerView = findViewById(R.id.recycle_view); mView_RecyclerView.setNestedScrollingEnabled(false); mView_RecyclerView.setLayoutManager(new LinearLayoutManager(this)); mAdapter = new DayLessonAdapter(mContext, new ArrayList<DayLesson>(), mColorText, mColorBackground); @SuppressWarnings("unchecked") SwingBottomInAnimationAdapter animatorAdapter = new SwingBottomInAnimationAdapter(mAdapter, mView_RecyclerView); mView_RecyclerView.setAdapter(animatorAdapter); ItemTouchHelper.Callback callback = new ItemTouchHelperCallBackNoMove(mAdapter); ItemTouchHelper touchHelper = new ItemTouchHelper(callback); touchHelper.attachToRecyclerView(mView_RecyclerView); registerForContextMenu(mView_SubjectArrow); mView_SubjectArrow.setOnClickListener(this); mView_SubjectName.setOnClickListener(this); addDayLesson.setOnClickListener(this); editWeekLesson.setOnClickListener(this); setUpInfo(); }
public RecyclerItemSwiper(int dragDirs, int swipeDirs, Context context, AppAdapter adapter, List<AppInfo> list, DatabaseHelper db, String tag, RecyclerView recyclerView) { super(dragDirs, swipeDirs); this.context = context; this.adapter = adapter; this.list = list; this.db = db; this.tag = tag; itemTouchHelper = new ItemTouchHelper(RecyclerItemSwiper.this); itemTouchHelper.attachToRecyclerView(recyclerView); }
@Override public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { // We only want the active item to change if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) { if (viewHolder instanceof ItemTouchHelperViewHolder) { // Let the view holder know that this item is being moved or dragged ItemTouchHelperViewHolder itemViewHolder = (ItemTouchHelperViewHolder) viewHolder; itemViewHolder.onItemSelected(); } } super.onSelectedChanged(viewHolder, actionState); }
@Override public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { if (actionState == ItemTouchHelper.ACTION_STATE_DRAG && !isViewCreateByAdapter(viewHolder)) { mAdapter.onItemDragStart(viewHolder); viewHolder.itemView.setTag(R.id.BaseQuickAdapter_dragging_support, true); } else if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE && !isViewCreateByAdapter(viewHolder)) { mAdapter.onItemSwipeStart(viewHolder); viewHolder.itemView.setTag(R.id.BaseQuickAdapter_swiping_support, true); } super.onSelectedChanged(viewHolder, actionState); }
/** * 当item被拖拽或侧滑时触发 * * @param viewHolder * @param actionState 当前item的状态 */ @Override public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { super.onSelectedChanged(viewHolder, actionState); //不管是拖拽或是侧滑,背景色都要变化 if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) viewHolder.itemView.setBackgroundColor(viewHolder.itemView.getContext().getResources().getColor(android.R.color.darker_gray)); }
@Override public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { // Set movement flags based on the layout manager int dragFlags; int swipeFlags; if (recyclerView.getLayoutManager() instanceof GridLayoutManager || recyclerView.getLayoutManager() instanceof StaggeredGridLayoutManager) { if (mDragFlags != 0) { dragFlags = mDragFlags; } else { dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; } if (mSwipeFlags != 0) { swipeFlags = mSwipeFlags; } else { swipeFlags = ItemTouchHelper.START; } } else { if (mDragFlags != 0) { dragFlags = mDragFlags; } else { dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN; } if (mSwipeFlags != 0) { swipeFlags = mSwipeFlags; } else { swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END; } } return makeMovementFlags(dragFlags, swipeFlags); }
/** * 启动拖拽和滑动 * @param view 视图 * @param adapter 适配器 */ public static void startDragAndSwipe(RecyclerView view, BaseQuickAdapter adapter) { SimpleItemTouchHelperCallback callback = new SimpleItemTouchHelperCallback(adapter); final ItemTouchHelper itemTouchHelper = new ItemTouchHelper(callback); itemTouchHelper.attachToRecyclerView(view); adapter.setDragStartListener(new OnStartDragListener() { @Override public void onStartDrag(RecyclerView.ViewHolder viewHolder) { itemTouchHelper.startDrag(viewHolder); } }); adapter.setDragCallback(callback); adapter.setDragColor(Color.LTGRAY); }
@Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mGenerator = new StylistGenerator(getContext()); mInput = view.findViewById(R.id.edit_input); mAdapter = new StyleAdapter(getActivity(), R.layout.list_item_style); mAdapter.setOnSwapStyleListener(new OnSwapStyleListener() { @Override public void onSwap(int fromPosition, int toPosition) { mGenerator.swapPosition(fromPosition, toPosition); } }); mListResult = view.findViewById(R.id.recycler_view); mListResult.setLayoutManager(new LinearLayoutManager(getContext())); mListResult.setHasFixedSize(true); mListResult.setAdapter(mAdapter); mListResult.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL)); ItemTouchHelperCallback callback = new ItemTouchHelperCallback(mAdapter); ItemTouchHelper helper = new ItemTouchHelper(callback); helper.attachToRecyclerView(mListResult); mInput.addTextChangedListener(this); restore(); }
/** * 状态改变时回调 */ @Override public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { super.onSelectedChanged(viewHolder, actionState); Log.i("Callback", actionState + ""); if(actionState != ItemTouchHelper.ACTION_STATE_IDLE){ NormalAdapter.VH holder = (NormalAdapter.VH)viewHolder; holder.itemView.setBackgroundColor(0xffbcbcbc); } }
@Override public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { //滑动时改变 Item 的透明度,以实现滑动过程中实现渐变效果 final float alpha = 1 - Math.abs(dX) / (float) viewHolder.itemView.getWidth(); viewHolder.itemView.setAlpha(alpha); viewHolder.itemView.setTranslationX(dX); } else { super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); } }
@Override public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { float alpha = 1 - (Math.abs(dX) / recyclerView.getWidth()); viewHolder.itemView.setAlpha(alpha); } super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); }
@Override public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { // We only want the active item to change if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) { if (viewHolder instanceof ItemTouchHelperViewHolder) { ItemTouchHelperViewHolder itemViewHolder = (ItemTouchHelperViewHolder) viewHolder; itemViewHolder.onItemSelected(); } } super.onSelectedChanged(viewHolder, actionState); }
@NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { View view = LayoutInflater.from(getActivity()).inflate(R.layout.playlist_picker, new LinearLayout(getActivity()), false); rv = (RecyclerView) view.findViewById(R.id.rv); btn = (Button) view.findViewById(R.id.create_playlist); btn.setVisibility(View.GONE); MaterialDialog.Builder builder = new MaterialDialog.Builder(getActivity()); CustomLayoutManager customlayoutmanager = new CustomLayoutManager(getActivity()); customlayoutmanager.setOrientation(LinearLayoutManager.VERTICAL); customlayoutmanager.setSmoothScrollbarEnabled(true); rv.setLayoutManager(customlayoutmanager); tabAdapter = new RemoveTabAdapter(getActivity(), this); ItemTouchHelper.Callback callback = new SimpleItemTouchHelperCallback(tabAdapter); mItemTouchHelper = new ItemTouchHelper(callback); mItemTouchHelper.attachToRecyclerView(rv); List<String> data = new ArrayList<String>(); data.add("1. Recent"); data.add("2. Folder"); data.add("3. Song"); data.add("4. Album"); data.add("5. Artist"); data.add("6.Playlist"); tabAdapter.addDataList(data); rv.setAdapter(tabAdapter); builder.title("Tab Remove") .autoDismiss(true) .positiveText(R.string.okay) .onPositive(new MaterialDialog.SingleButtonCallback() { @Override public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { dialog.dismiss(); } }) .customView(view, false); return builder.show(); }
@Override protected void initFragment(Bundle savedInstanceState) { super.initFragment(savedInstanceState); setLoadMoreEnable(true); ItemTouchHelperCallback callback = new ItemTouchHelperCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT, this); itemTouchHelper = new ItemTouchHelper(callback); itemTouchHelper.attachToRecyclerView(recyclerView); }