如何知道Recyclerview细胞被刷的方向?

时间:2018-04-30 08:27:27

标签: android android-recyclerview itemtouchhelper

对于我的recyclerview,我附上了ItemTouchHelper。用户可以向两个方向滑动,即左右。

我想知道,一旦用户开始向左或向右拖动单元格而不是在用户刷过recyclerview的单元格后,就可以知道。基于此,我需要对细胞采取一些行动。

我正在使用ItemTouchHelper的以下方法

- run: sudo apt-get install libappindicator3-1
- run: curl -L -o google-chrome.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
- run: sudo sed -i 's|HERE/chrome\"|HERE/chrome\" --disable-setuid-sandbox|g' /opt/google/chrome/google-chrome
- run: sudo dpkg -i google-chrome.deb
- run: rm google-chrome.deb

但我不知道如何使用它,因为文档不合适。

2 个答案:

答案 0 :(得分:1)

一旦选择了正在滑动的视图并开始向右或向左移动,您就可以在onChildDraw()的{​​{1}}中检查滑动的方向:

ItemTouchHelper.Callback

答案 1 :(得分:1)

new ItemTouchHelper( new ItemTouchHelper.SimpleCallback( 0,
        ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT ) {
    @Override
    public boolean onMove(RecyclerView recyclerView,
                          RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
        return false;
    }

    @Override
    public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
        int adapterPosition = viewHolder.getAdapterPosition();
        if (direction == ItemTouchHelper.RIGHT) {
            Toast.makeText( getContext(), "Right", Toast.LENGTH_SHORT ).show();
        } else if (direction == ItemTouchHelper.LEFT) {
            Toast.makeText( getContext(), "Left", Toast.LENGTH_SHORT ).show();
        }

    }
} ).attachToRecyclerView( myProductFgRecyclerV );