类android.support.v7.widget.helper.ItemTouchHelper源码实例Demo

下面列出了怎么用android.support.v7.widget.helper.ItemTouchHelper的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: YTPlayer   文件: ItemMoveCallback.java
@Override
public void onSelectedChanged(RecyclerView.ViewHolder viewHolder,
                              int actionState) {


    if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) {
        if (viewHolder instanceof NPlayAdapter.MyViewHolder) {
            NPlayAdapter.MyViewHolder myViewHolder=
                    (NPlayAdapter.MyViewHolder) viewHolder;
            mAdapter.onRowSelected(myViewHolder);
        }

    }

    super.onSelectedChanged(viewHolder, actionState);
}
 
/**
 * Callback回调监听时先调用的,用来判断当前是什么动作,比如判断方向
 * 作用:哪个方向的拖动
 *
 * @param recyclerView
 * @param viewHolder
 * @return
 */
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
	//方向:up,down,left,right
	//常量
	// ItemTouchHelper.UP    0x0001
	// ItemTouchHelper.DOWN  0x0010
	// ItemTouchHelper.LEFT
	// ItemTouchHelper.RIGHT

	//我要监听的拖拽方向是哪个方向
	int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
	//我要监听的swipe侧滑方向是哪个方向
	int swipeFlags = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;


	int flags = makeMovementFlags(dragFlags, swipeFlags);
	return flags;
}
 
@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 onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
  if (actionState != ItemTouchHelper.ACTION_STATE_DRAG) {
    super.onSelectedChanged(viewHolder, actionState);
    return;
  }

  if (dragAndDropCallback != null) {
    dragAndDropCallback.onCellDragStarted(simpleRecyclerView, viewHolder.itemView, draggingItem, draggingItemPosition);
  }

  if (options.isDefaultEffectEnabled()) {
    viewHolder.itemView.setSelected(true);
    viewHolder.itemView.setAlpha(0.95f);
    if (Build.VERSION.SDK_INT >= 21 && animator == null) {
      animator = AnimatorInflater.loadStateListAnimator(viewHolder.itemView.getContext(), R.animator.raise);
      viewHolder.itemView.setStateListAnimator(animator);
    }
  }

  super.onSelectedChanged(viewHolder, actionState);
}
 
源代码5 项目: imsdk-android   文件: ItemDragAndSwipeCallback.java
@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();

    }
}
 
源代码6 项目: journaldev   文件: ItemMoveCallback.java
@Override
public void onSelectedChanged(RecyclerView.ViewHolder viewHolder,
                              int actionState) {


    if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) {
        if (viewHolder instanceof RecyclerViewAdapter.MyViewHolder) {
            RecyclerViewAdapter.MyViewHolder myViewHolder=
                    (RecyclerViewAdapter.MyViewHolder) viewHolder;
            mAdapter.onRowSelected(myViewHolder);
        }

    }

    super.onSelectedChanged(viewHolder, actionState);
}
 
源代码7 项目: SteamGifts   文件: GiveawayListFragment.java
@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
    View itemView = viewHolder.itemView;

    if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE && dX < 0) {
        // draw x mark
        int itemHeight = itemView.getBottom() - itemView.getTop();
        int intrinsicWidth = xMark.getIntrinsicWidth();
        int intrinsicHeight = xMark.getIntrinsicWidth();

        int xMarkLeft = itemView.getRight() - xMarkMargin - intrinsicWidth;
        int xMarkRight = itemView.getRight() - xMarkMargin;
        int xMarkTop = itemView.getTop() + (itemHeight - intrinsicHeight) / 2;
        int xMarkBottom = xMarkTop + intrinsicHeight;
        xMark.setBounds(xMarkLeft, xMarkTop, xMarkRight, xMarkBottom);

        xMark.draw(c);
    }

    super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
}
 
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
                         @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_wifi_provision, container, false);
    mWifiInfoRecyclerView = (RecyclerView) view.findViewById(R.id.wifi_recycler_view);
    mWifiInfoRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
    mWifiInfoAdapter = new WifiInfoAdapter(mWifiInfoList, this);
    mWifiInfoRecyclerView.setAdapter(mWifiInfoAdapter);

    DragSwipeController dragSwipeController = new DragSwipeController(mWifiInfoAdapter);
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(dragSwipeController);
    itemTouchHelper.attachToRecyclerView(mWifiInfoRecyclerView);
    mAmazonFreeRTOSManager = AmazonFreeRTOSAgent.getAmazonFreeRTOSManager(getActivity());
    mDevice = mAmazonFreeRTOSManager.getConnectedDevice(mDeviceMacAddr);
    listNetworks();
    return view;
}
 
@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
    boolean clickHeader = ((PowerfulRecyclerAdapter) mAdapter).hasHeaderView() && viewHolder.getAdapterPosition() == 0;
    boolean clickFooter = ((PowerfulRecyclerAdapter) mAdapter).hasFootView() && viewHolder.getAdapterPosition() == ((PowerfulRecyclerAdapter)mAdapter).getItemCount() - 1;
    boolean clickRecyclerFooter = ((PowerfulRecyclerAdapter) mAdapter).getPlugAdapter().getItemViewType(viewHolder.getAdapterPosition() - ((PowerfulRecyclerAdapter) mAdapter).getHeaderViewCount()) == PowerfulRecyclerView.TYPE_RECYCLER_FOOTER;
    if(clickHeader || clickFooter || clickRecyclerFooter){
        return;
    }else{
        if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
            float width = (float) viewHolder.itemView.getWidth();
            float alpha = 1.0f - Math.abs(dX) / width;
            viewHolder.itemView.setAlpha(alpha);
            viewHolder.itemView.setTranslationX(dX);
        } else {
            super.onChildDraw(c, recyclerView, viewHolder, dX, dY,
                    actionState, isCurrentlyActive);
        }
    }
}
 
源代码10 项目: OpenHub   文件: TraceFragment.java
@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);

    }
 
源代码11 项目: letv   文件: ChannelFragmentAdapter.java
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 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);

    if (null != mOnSelectChangedListener) {
        mOnSelectChangedListener.onSelectedChanged(viewHolder, actionState);
    }
}
 
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
    // 移除 onTouchListener,否则触摸滑动会乱了
    viewHolder.itemView.setOnTouchListener(null);
    int layoutPosition = viewHolder.getLayoutPosition();
    T remove = dataList.remove(layoutPosition);
    adapter.notifyDataSetChanged();
    if (mListener != null) {
        mListener.onSwiped(viewHolder, remove, direction == ItemTouchHelper.LEFT ? CardConfig.SWIPED_LEFT : CardConfig.SWIPED_RIGHT);
    }
    // 当没有数据时回调 mListener
    if (adapter.getItemCount() == 0) {
        if (mListener != null) {
            mListener.onSwipedClear();
        }
    }
}
 
源代码14 项目: AccountBook   文件: TypeEditActivity.java
private void initAdapter() {
    mRecyclerView.setLayoutManager(new LinearLayoutManager(mContext));
    mAdapter = new TypeEditAdapter(mTypes);
    ItemDragAndSwipeCallback itemDragAndSwipeCallback = new ItemDragAndSwipeCallback(mAdapter);
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(itemDragAndSwipeCallback);
    itemTouchHelper.attachToRecyclerView(mRecyclerView);

    itemDragAndSwipeCallback.setSwipeMoveFlags(ItemTouchHelper.START | ItemTouchHelper.END);
    mAdapter.enableSwipeItem();
    mAdapter.setOnItemSwipeListener(onItemSwipeListener);
    mAdapter.enableDragItem(itemTouchHelper);
    mAdapter.setOnItemDragListener(onItemDragListener);
    mRecyclerView.setAdapter(mAdapter);

    mRecyclerView.addOnItemTouchListener(new OnSimpleClickListener(){
        @Override
        public void onItemClick(BaseQuickAdapter baseQuickAdapter, View view, int i) {
            Type data = (Type) baseQuickAdapter.getData().get(i);
            // 编辑分类
            Intent intent = new Intent(mContext, AddEditTypeActivity.class);
            intent.putExtra(AppConstants.EXTRA_ACCOUNT_TYPE, mType);
            intent.putExtra(AppConstants.EXTRA_DATA, data);
            startActivityForResult(intent, CODE_EDIT_TYPE);
        }
    });
}
 
源代码15 项目: MultiItem   文件: ItemDragHelper.java
/**
     * 当item位置变换,滚动recycler到正确的位置
     * TODO: 2017/2/21 0021 整理更优雅的写法  还有scrollToPosition(0)是否必要?
     */
    private void scrollToRightPositionWhenItemChanged(RecyclerView recyclerView, View itemView, int itemPos) {
        final RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
        if (layoutManager instanceof ItemTouchHelper.ViewDropHandler) {
            OrientationHelper helper = OrientationHelper.createVerticalHelper(layoutManager);
            int start = helper.getDecoratedStart(itemView);
            int end = helper.getDecoratedEnd(itemView);
            ((LinearLayoutManager) layoutManager).scrollToPositionWithOffset(
                    itemPos, lastItemPos > itemPos ? start : end - itemViewHeight);
//                System.out.println(lastItemPos + "-" + childPos + "OrientationHelperOrientationHelper:"
//                        + height + "==" + itemViewHeight + "=||=" + start + "===" + end + "||||||" + myStart + "===" + itemTargetView.getHeight() );
        }
        if (lastItemPos == 0 || itemPos == 0) {
            recyclerView.scrollToPosition(0);
        }
    }
 
源代码16 项目: CircularDeletionSwipe   文件: MainActivity.java
@Override
  protected void onCreate(Bundle savedInstanceState)
  {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);

toolbar = (Toolbar)findViewById(R.id.toolbar);
toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.semi_black));
setSupportActionBar(toolbar);

recycler = (RecyclerView)findViewById(R.id.recyclerView);
recycler.setLayoutManager(new LinearLayoutManager(this));
recycler.setItemAnimator(new DefaultItemAnimator());
recycler.setAdapter(new AdapterRecyclerView(this, getItemList()));

ItemTouchHelper.Callback callback = new DeletionSwipeHelper(0, ItemTouchHelper.START, this, this);
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(callback);
itemTouchHelper.attachToRecyclerView(recycler);
  }
 
源代码17 项目: SwipeableRV   文件: DemoActivity.java
private void initViews() {
    mRecyclerView = (SWRecyclerView) findViewById(R.id.recycler_view);
    mRecyclerView.getSwipeMessageBuilder()
                 .withFontPath(getString(R.string.droidSerif))
                 .withSwipeDirection(SwipeMessageBuilder.BOTH)
                 .build();
    LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
    mRecyclerView.setLayoutManager(layoutManager);

    reminders.add("Reminder 1");
    reminders.add("Reminder 2");
    reminders.add("Reminder 3");
    reminders.add("Reminder 4");
    reminders.add("Reminder 5");
    reminders.add("Reminder 6");
    reminders.add("Reminder 7");
    reminders.add("Reminder 8");
    reminders.add("Reminder 9");
    reminders.add("Reminder 10");

    mAdapter = new io.huannguyen.swipeablerv.demo.SampleAdapter(reminders);
    // allow swiping with both directions (left-to-right and right-to-left)
    mRecyclerView.setAdapter(mAdapter);
    mRecyclerView.setupSwipeToDismiss(mAdapter, ItemTouchHelper.LEFT|ItemTouchHelper.RIGHT);
}
 
源代码18 项目: NewsMe   文件: CustomNewsActivity.java
private void initRecycle() {
    adapter = new ChannelCustomAdapter(CustomNewsActivity.this);
    adapter.setOnStartDragListener(CustomNewsActivity.this);
    adapter.setOnChangeListener(CustomNewsActivity.this);
    getBinding().content.setAdapter(adapter);
    getBinding().content.setHasFixedSize(true);

    ItemTouchHelper.Callback callback = simpleItemTouch(adapter);
    mItemTouchHelper = new ItemTouchHelper(callback);
    mItemTouchHelper.attachToRecyclerView(getBinding().content);
}
 
源代码19 项目: Focus   文件: SimpleItemTouchHelperCallback.java
@Override
public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {
    if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) {
        // Let the view holder know that this item is being moved or dragged
        ItemTouchHelperViewHolder itemViewHolder = (ItemTouchHelperViewHolder) viewHolder;
        itemViewHolder.onItemSelected(context);
    }

    super.onSelectedChanged(viewHolder, actionState);

   /* final boolean swiping = actionState == ItemTouchHelper.ACTION_STATE_SWIPE;
    swipeRefreshLayout.setEnabled(!swiping);*/
}
 
/**
 * 获取动作标识
 * 动作标识分:dragFlags和swipeFlags
 * dragFlags:列表滚动方向的动作标识(如竖直列表就是上和下,水平列表就是左和右)
 * wipeFlags:与列表滚动方向垂直的动作标识(如竖直列表就是左和右,水平列表就是上和下)
 */
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
    int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
    int swipeFlags = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;
    int flags = makeMovementFlags(dragFlags, swipeFlags);
    return flags;
}
 
源代码21 项目: YTPlayer   文件: SimpleItemTouchHelperCallback.java
@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_IDLE) {
		viewHolder.itemView.setBackgroundColor(viewHolder.itemView.getContext().getResources().getColor(R.color.colorAccent));
	}
	super.onSelectedChanged(viewHolder, actionState);

}
 
源代码23 项目: 365browser   文件: SuggestionsRecyclerView.java
public SuggestionsRecyclerView(Context context, AttributeSet attrs) {
    super(new ContextThemeWrapper(context, R.style.NewTabPageRecyclerView), attrs);

    Resources res = getContext().getResources();
    setBackgroundColor(ApiCompatibilityUtils.getColor(res, R.color.ntp_bg));
    setLayoutParams(new LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
    setFocusable(true);
    setFocusableInTouchMode(true);
    setContentDescription(res.getString(R.string.accessibility_new_tab_page));

    mGestureDetector =
            new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() {
                @Override
                public boolean onSingleTapUp(MotionEvent e) {
                    boolean retVal = super.onSingleTapUp(e);
                    requestFocus();
                    return retVal;
                }
            });
    mLayoutManager = new LinearLayoutManager(getContext());
    setLayoutManager(mLayoutManager);
    setHasFixedSize(true);

    ItemTouchHelper helper = new ItemTouchHelper(new ItemTouchCallbacks());
    helper.attachToRecyclerView(this);

    mScrollEventReporter = new SuggestionsMetrics.ScrollEventReporter();
    addOnScrollListener(mScrollEventReporter);
}
 
/**
 * @see android.support.v7.widget.helper.ItemTouchHelper.Callback#getMovementFlags(RecyclerView, RecyclerView.ViewHolder)
 * Sets the swipe flags for start and end.
 */
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
    int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
    int swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END;
    return makeMovementFlags(dragFlags, swipeFlags);
}
 
源代码25 项目: ToDoList   文件: ClockItemTouchHelperCallback.java
@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);
    }
}
 
源代码26 项目: ToDoList   文件: ClockItemTouchHelperCallback.java
@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_IDLE)
    {
        SwipeAdapter.SwipeViewHolder itemViewHolder = (SwipeAdapter.SwipeViewHolder) viewHolder;
        itemViewHolder.onItemSelected();
    }

    super.onSelectedChanged(viewHolder, actionState);
}
 
/**
 * 设置滑动类型标记
 */
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
    //START  右向左 END左向右 LEFT  向左 RIGHT向右  UP向上
    //如果某个值传0,表示不触发该操作
    return makeMovementFlags(ItemTouchHelper.UP| ItemTouchHelper.DOWN|ItemTouchHelper.START|ItemTouchHelper.END, ItemTouchHelper.START|ItemTouchHelper.END);
}
 
源代码29 项目: LRecyclerView   文件: ListDragMenuActivity.java
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
    int dragFlags = 0, swipeFlags = 0;
    if (recyclerView.getLayoutManager() instanceof StaggeredGridLayoutManager) {
        dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;
    } else if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {
        dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
        //设置侧滑方向为从左到右和从右到左都可以
        swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END;
    }
    return makeMovementFlags(dragFlags, swipeFlags);
}
 
源代码30 项目: NewsMe   文件: SimpleItemTouchHelperCallback.java
@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);
    }
}
 
 同包方法