Включить элементы клика, даже при прокрутке RecyclerView - PullRequest
0 голосов
/ 24 июня 2018

Нормальное поведение: когда мы переходим к представлению перезаписи прокрутки, элементы прокручиваются, затем нажимаются, RV останавливает прокрутку, а не выполняет щелчок элемента.

Что мне нужно: прекратить прокрутку + выполнить щелчок элемента!

Есть хакерский путь?

1 Ответ

0 голосов
/ 24 июня 2018

Я получил ответ по этой ссылке

Я хочу добавить еще код ...

public class MyRecyclerView extends RecyclerView {
public MyRecyclerView(Context context) {
    super(context);
}

public MyRecyclerView(Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
}

public MyRecyclerView(Context context, @Nullable AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

@Override
public boolean onInterceptTouchEvent(MotionEvent e) {

    //https://stackoverflow.com/a/46569656/8863321

    boolean requestCancelDisallowInterceptTouchEvent = getScrollState() == SCROLL_STATE_SETTLING;
    boolean consumed = super.onInterceptTouchEvent(e);
    final int action = e.getActionMasked();

    switch (action) {
        case MotionEvent.ACTION_DOWN:
            if( requestCancelDisallowInterceptTouchEvent ){
                getParent().requestDisallowInterceptTouchEvent(false);
                // stop scroll to enable child view get the touch event
                stopScroll();
                // not consume the event
                return false;
            }
            break;
    }

    return consumed;

}}

Этоэто очень редкий сценарий, но этот прием может помочь кому-то в будущем!

...