RecyclerView 스크롤을 비활성화하는 방법은 무엇입니까?


221

에서 스크롤을 사용 중지 할 수 없습니다 RecyclerView. 전화를 시도 rv.setEnabled(false)했지만 여전히 스크롤 할 수 있습니다.

스크롤을 비활성화하려면 어떻게해야합니까?


1
RecyclerView스크롤을 원하지 않는 경우 사용 요점은 무엇입니까 ?
CommonsWare

16
@CommonsWare, 예를 들어 자식 중 하나와 함께 사용자 정의 애니메이션을 수행하는 동안 일시적으로 비활성화하고 싶습니다.
Zsolt Safrany

1
아, 알겠습니다. 아마도 View위에 투명하게 놓았을 수도 있고 필요에 따라 RecyclerView토글 할 수도 있지만 커프를 벗으면 접근이 합리적입니다. VISIBLEGONE
CommonsWare

희망 더 나은 솔루션을 찾을 수 있습니다.
Saiteja Parsi

1
@CommonsWare, 예를 들어 여기에 필요한 것이 있습니다. 부분적으로 보이는 이미지없이 뷰포트에 하나씩 RecyclerView에 이미지를 한 번에 하나씩 표시해야합니다. 왼쪽과 오른쪽에는 사용자가 탐색 할 수있는 화살표가 있습니다. 현재 표시되는 이미지 (다양한 유형)에 따라 RecyclerView 외부의 일부가 트리거됩니다. 고객이 원하는 디자인입니다.
Varvara Kalinina

답변:


368

이를 위해 recycleview의 레이아웃 관리자를 재정의해야합니다. 이렇게하면 스크롤 기능 만 비활성화되고 다른 기능은 없습니다. 클릭 또는 기타 터치 이벤트를 계속 처리 할 수 ​​있습니다. 예를 들면 다음과 같습니다.

실물:

 public class CustomGridLayoutManager extends LinearLayoutManager {
 private boolean isScrollEnabled = true;

 public CustomGridLayoutManager(Context context) {
  super(context);
 }

 public void setScrollEnabled(boolean flag) {
  this.isScrollEnabled = flag;
 }

 @Override
 public boolean canScrollVertically() {
  //Similarly you can customize "canScrollHorizontally()" for managing horizontal scroll
  return isScrollEnabled && super.canScrollVertically();
 }
}

여기서 "isScrollEnabled"플래그를 사용하면 재순환보기의 스크롤 기능을 일시적으로 활성화 / 비활성화 할 수 있습니다.

또한:

스크롤을 비활성화하고 클릭을 허용하려면 기존 구현을 간단히 재정의하십시오.

 linearLayoutManager = new LinearLayoutManager(context) {
 @Override
 public boolean canScrollVertically() {
  return false;
 }
};

2
클릭 할 수있게하면서 스크롤을 비활성화하므로 정답이어야합니다.
Jared Burrows

10
기본 LayoutMangers에서 스크롤을 사용하지 않도록 설정하면 API 사용자는이 작업을 수행 할 필요가 없습니다. 그래도 답변 주셔서 감사합니다!
Martin O'Shea

1
특정 항목에서만 스크롤을 비활성화하려면 어떻게해야합니까? 다시 스크롤 할 때까지 아래로 스크롤 할 수는 있지만 차단 될 수 있습니까?
안드로이드 개발자

2
이것은 또한 smoothScrollToPosition 비활성화
믈라덴 Rakonjac

4
당신은 코 틀린 버전의 개체를 추가 : LinearLayoutManager (이) {재정의 재미 canScrollVertically () : 부울 {반환 거짓}}
amorenew

149

진정한 대답은

recyclerView.setNestedScrollingEnabled(false);

설명서의 추가 정보


39
이것은 모든 스크롤이 아닌 중첩 스크롤 만 비활성화합니다. 특히, RecyclerView가 ScrollView에 있지만 화면을 채우지 않으면 ScrollView가 스크롤되지 않고 (콘텐츠가 화면에 맞음) RecyclerView에 스크롤 UI가 표시됩니다 (예 : 스크롤하려고 할 때 목록 끝 효과). ) 커지면 스크롤되지 않습니다. LayoutManager를 확장하면 실제로 작업을 수행합니다.
personne3000

3
@ personne3000 recyclerView.setHasFixedSize (true)가 그 일을한다고 생각합니다. 편집 : 나는 또한 setFillViewport (true)와 함께 이것을 사용하므로 실제로 두 가지 중 어느 것이 수정되는지 확실하지 않습니다.
mDroidd

5
이것은 나에게 잘 작동하지만 내 "RecyclerView"는 "ScrollView"를 사용하여 Fragment 레이아웃 내에 있었으므로 여기에 설명 된대로 "NestedScrollView"로 "ScrollView"를 변경해야했습니다. stackoverflow.com/a/38088902/618464
educoutinho

1
의 전체 클래스 이름을 사용해야합니다 NestedScrollView: android.support.v4.widget.NestedScrollView, chessdork에 의해 여기에서 설명한대로 : stackoverflow.com/questions/37846245/...
gustavoknz

무엇이 잘못되었는지 알아 내려고 4 시간을 보낸 후에 이것이 내 문제를 해결했습니다. 제 경우에는 MotionLayout 내부에서 recyclerview를 사용하고 있습니다. 그리고 motion : touchAnchorId = "@ id / swipe_area"를 추가하여 위로 스 와이프 영역을 추가했습니다. 정상적으로 작동하지만 recyclerview의 빈 공간을 만지면 트리거됩니다. 다른 스 와이프 가능한 요소와 함께 motionLayout을 사용할 때주의하십시오.
O. Kumru

73

실제 답변은 다음과 같습니다. 과 같습니다. API 21 이상 :

자바 코드가 필요하지 않습니다. android:nestedScrollingEnabled="false" xml로 설정할 수 있습니다 :

<android.support.v7.widget.RecyclerView
     android:id="@+id/recycler"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:clipToPadding="true"
     android:nestedScrollingEnabled="false"
     tools:listitem="@layout/adapter_favorite_place">

11
나는 이것이 대답이 될 것이라고 생각합니다. 클래스에서 아무런 노력없이 스크롤을 비활성화 할 수는 있지만 레이아웃에서 터치가 허용됩니다.
VipiN Negi

21 이하의 API는 무엇입니까 ??
Mouaad Abdelghafour AITALI

더 낮은 API의 경우 @pic 사용할 수 있습니다. recyclerView.setNestedScrollingEnabled (false);
Milad Faridnia

1
나에게 맞는 대답.
Fernando Torres

1
이것은 최선의 가장 간단한 대답이며, 불필요한 코드 오염과 끝없는 클래스 확장 패턴을 피합니다.
라파엘 C

52

이것은 약간의 hackish 해결 방법이지만 작동합니다. 에서 스크롤을 활성화 / 비활성화 할 수 있습니다.RecyclerView .

이것은 RecyclerView.OnItemTouchListener모든 터치 이벤트를 훔쳐서 대상을 비활성화 하는 빈 상태 RecyclerView입니다.

public class RecyclerViewDisabler implements RecyclerView.OnItemTouchListener {

    @Override
    public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
        return true;
    }

    @Override
    public void onTouchEvent(RecyclerView rv, MotionEvent e) {

    }

    @Override
    public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

    }
}

그것을 사용 :

RecyclerView rv = ...
RecyclerView.OnItemTouchListener disabler = new RecyclerViewDisabler();

rv.addOnItemTouchListener(disabler);        // disables scolling
// do stuff while scrolling is disabled
rv.removeOnItemTouchListener(disabler);     // scrolling is enabled again 

8
항목 클릭도 비활성화됩니까?
Jahir Fiquitiva

@JahirFiquitiva 예. "이것은 모든 터치 이벤트를 훔치는 빈 RecyclerView.OnItemTouchListener입니다"
Max

1
이것은 또한 부모보기의 스크롤을 비활성화합니다
Jemshit Iskenderov

너무이 비활성화 항목을 클릭
무하마드 Riyaz

1
깨끗한 솔루션이있을 때 왜 부작용이있는 해킹 해결 방법을 사용합니까? LayoutManager를 재정의하십시오 (다른 답변 참조)
personne3000

37

이것은 나를 위해 작동합니다 :

  recyclerView.setOnTouchListener(new View.OnTouchListener() {
      @Override
      public boolean onTouch(View v, MotionEvent event) {
          return true;
      }
  });

11
모든 터치가 비활성화됩니다.
Jared Burrows

1
좋은 트릭! 다시 활성화하려면 onTouchListener의 onTouch를 재설정하여 false를 반환하십시오.
HendraWD

음, 그러나 경고가 있습니다Custom view 'RecyclerView' has setOnTouchListener called on it but does not override performClick
HendraWD

당신이 @HendraWD이 주석에 언급 된 것과 같은 경고를받는 경우 위 다음이 질문의 답변을 살펴 : stackoverflow.com/questions/46135249/...
니콜라스 카라 스코

1
true를 반환하지 return e.getAction() == MotionEvent.ACTION_MOVE;않고 모든 종류의 터치 이벤트를 비활성화하는 대신 return true;스크롤 / 스 와이프 이벤트 만 취소됩니다.
Toufic Batache

15

RecyclerView를 고정하여 스크롤을 비활성화 할 수 있습니다.

얼리려면 : recyclerView.setLayoutFrozen(true)

고정을 해제하려면 recyclerView.setLayoutFrozen(false)


1
참고 : RecyclerView가 고정되어 있으면 자식 뷰가 업데이트되지 않습니다. 화면에 모든 항목을 표시하기에 충분한 공간이 있으면 스크롤을 비활성화해야합니다. 아 ...이 작업을위한 멋진 안드로이드 API ...
Oleksandr Nos

1
API 28에서 사용되지 않음
OhhhThatVarun

13

확장 클래스 만들기 RecyclerView의 클래스

public class NonScrollRecyclerView extends RecyclerView {

    public NonScrollRecyclerView(Context context) {
        super(context);
    }

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

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

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec(
                Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom);
        ViewGroup.LayoutParams params = getLayoutParams();
        params.height = getMeasuredHeight();
    }
}

이것은 스크롤 이벤트를 비활성화하지만 클릭 이벤트는 비활성화합니다

XML에서 이것을 사용하여 다음을 수행하십시오.

  <com.yourpackage.xyx.NonScrollRecyclerView 
     ...
     ... 
  />

감사! 내부 스크롤없이 내용에 따라 리사이클 뷰를 전체 높이로 가져 오려면이 모든 것이 필요합니다. :)
Rahul Rastogi

그러나이 리사이클 러보기가 스크롤보기 (예 : ScrollView) 인 경우 레이아웃 관리자는 false를 리턴하는 canScrollVertically () 메소드를 대체해야합니다.
Rahul Rastogi

@RahulRastogi는 ScrollView 대신 NestedScrollView를 사용합니다
Ashish

안녕 @AshishMangave, 프로그래밍 방식으로 다시 활성화하는 방법을 알려주십시오
Shruti

@Shruti 우리는 프로그래밍 방식 으로이 작업을 수행 할 수 없습니다. bcz 우리는 recyclerview의 onMeasure 메소드를 직접 재정의합니다.이 recyclerView.setNestedScrollingEnabled (false) 시도해보십시오. 도움이 될 것입니다
Ashish

11

그냥 비활성화하는 경우 에만 스크롤 기능RecyclerView다음 사용할 수있는 setLayoutFrozen(true);방법을 RecyclerView. 그러나 터치 이벤트를 비활성화 할 수 없습니다.

your_recyclerView.setLayoutFrozen(true);

이 메소드는 추천되지 않습니다. 다른 것을 제안 할 수 있습니까?
Aiyaz Parmar

API 28에서 사용되지 않음
OhhhThatVarun

9
recyclerView.addOnItemTouchListener(new RecyclerView.SimpleOnItemTouchListener() {
        @Override
        public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
            // Stop only scrolling.
            return rv.getScrollState() == RecyclerView.SCROLL_STATE_DRAGGING;
        }
    });


터치하면 smoothScrollToPosition ()의 스크롤이 중단됩니다.
ypresto

프로그래밍 방식으로 스크롤 할 수는 있지만 사용자 스크롤을 피하기 때문에 이것이 가장 좋은 해결책입니다.
Miguel Sesma

7

정말 간단한 대답이 있습니다.

LinearLayoutManager lm = new LinearLayoutManager(getContext()) {
                @Override
                public boolean canScrollVertically() {
                    return false;
                }
            };

위의 코드는 RecyclerView를 세로로 스크롤하지 못하게합니다.



6

코 틀린 버전 작성 :

class NoScrollLinearLayoutManager(context: Context?) : LinearLayoutManager(context) {
    private var scrollable = true

    fun enableScrolling() {
        scrollable = true
    }

    fun disableScrolling() {
        scrollable = false
    }

    override fun canScrollVertically() =
            super.canScrollVertically() && scrollable


    override fun canScrollHorizontally() =
            super.canScrollVertically()

 && scrollable
}

용법:

recyclerView.layoutManager = NoScrollLinearLayoutManager(context)
(recyclerView.layoutManager as NoScrollLinearLayoutManager).disableScrolling()

5

을 확장 LayoutManager하고 무시 canScrollHorizontally()하고 canScrollVertically()비활성화 스크롤합니다.

처음에 항목을 삽입해도 처음으로 자동으로 스크롤되지 않으므로 다음과 같이하십시오.

  private void clampRecyclerViewScroll(final RecyclerView recyclerView)
  {
    recyclerView.getAdapter().registerAdapterDataObserver(new RecyclerView.AdapterDataObserver()
    {
      @Override
      public void onItemRangeInserted(int positionStart, int itemCount)
      {
        super.onItemRangeInserted(positionStart, itemCount);
        // maintain scroll position at top
        if (positionStart == 0)
        {
          RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
          if (layoutManager instanceof GridLayoutManager)
          {
            ((GridLayoutManager) layoutManager).scrollToPositionWithOffset(0, 0);
          }else if(layoutManager instanceof LinearLayoutManager)
          {
            ((LinearLayoutManager) layoutManager).scrollToPositionWithOffset(0, 0);
          }
        }
      }
    });
  }

1
이 비활성화 또한 smoothScrollToPosition
믈라덴 Rakonjac

5

나는 이것이 이미 받아 들여진 대답을 알고 있지만 해결책은 내가 찾은 유스 케이스를 고려하지 않습니다.

나는 여전히 클릭 가능한 헤더 항목이 필요했지만 RecyclerView의 스크롤 메커니즘을 비활성화했습니다. 다음 코드를 사용하여 수행 할 수 있습니다.

recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
                            @Override
     public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
         return e.getAction() == MotionEvent.ACTION_MOVE;
     }

     @Override
     public void onTouchEvent(RecyclerView rv, MotionEvent e) {

     }

     @Override
     public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

    }
});

어떤 이유로 든, 당신은 이것이 작동하도록 움직이지 않고 바로 클릭해야합니다.
Jared Burrows

좋은 지적, @JaredBurrows. ACTION_MOVE을 (를) 무시하고 있기 때문입니다. 터치가 자연스럽게 느껴지려면 터치와 화면의 약간의 움직임이 있습니다. 불행히도 그 문제를 해결할 수 없었습니다.
Ryan Simon

고마워, 내가 정확히 필요한 것!
Student

5

으로 setLayoutFrozen사용되지 않습니다, 당신은 사용하여 RecyclerView을 동결 스크롤을 해제 할 수 있습니다suppressLayout .

얼리려면 :

recyclerView.suppressLayout(true)

고정을 해제하려면

recyclerView.suppressLayout(false)

4

XML에서 :-

추가 할 수 있습니다

android:nestedScrollingEnabled="false"

자식 RecyclerView 레이아웃 XML 파일에서

또는

자바에서 :-

childRecyclerView.setNestedScrollingEnabled(false);

Java 코드로 RecyclerView에.

ViewCompat (Java) 사용 :-

childRecyclerView.setNestedScrollingEnabled(false);android_version> 21 기기 에서만 작동 합니다. 모든 장치에서 작동하려면 다음을 사용하십시오.

ViewCompat.setNestedScrollingEnabled(childRecyclerView, false);


모든 API가 적용되는 Excelent의 전원을 켜야합니다.
Ricard

3

어떤 이유로 @Alejandro Gracia의 답변은 몇 초 후에 작동하기 시작합니다. RecyclerView를 즉시 차단하는 솔루션을 찾았습니다.

recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
            @Override
            public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
                return true;
            }
            @Override
            public void onTouchEvent(RecyclerView rv, MotionEvent e) {
            }
            @Override
            public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
            }
        });

3

onTouchEvent () 및 onInterceptTouchEvent ()를 재정의하고 OnItemTouchListener가 전혀 필요하지 않으면 false를 반환합니다. ViewHolders의 OnClickListener를 비활성화하지 않습니다.

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

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

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

    @Override
    public boolean onTouchEvent(MotionEvent e) {
        return false;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent e) {
        return false;
    }
}

3

어댑터를 설정 한 후이 줄을 추가 할 수 있습니다

ViewCompat.setNestedScrollingEnabled(recyclerView, false);

이제 recyclerview는 부드러운 스크롤로 작동합니다.


2

한 시간 동안이 문제에 어려움을 겪고 있으므로 경험을 공유하고 싶습니다. layoutManager 솔루션의 경우 문제가 없지만 스크롤을 다시 활성화하려면 재활용기를 맨 위로 올리십시오.

지금까지 가장 좋은 해결책은 @Zsolt Safrany 메소드를 사용하는 것이지만 getter 및 setter를 추가하여 OnItemTouchListener를 제거하거나 추가 할 필요가 없습니다.

다음과 같이

public class RecyclerViewDisabler implements RecyclerView.OnItemTouchListener {

    boolean isEnable = true;

    public RecyclerViewDisabler(boolean isEnable) {
        this.isEnable = isEnable;
    }

    public boolean isEnable() {
        return isEnable;
    }

    public void setEnable(boolean enable) {
        isEnable = enable;
    }

    @Override
    public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
        return !isEnable;
    }

    @Override
    public void onTouchEvent(RecyclerView rv, MotionEvent e) {}

   @Override
   public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept){}
 }

용법

RecyclerViewDisabler disabler = new RecyclerViewDisabler(true);
feedsRecycler.addOnItemTouchListener(disabler);

// TO ENABLE/DISABLE JUST USE THIS
disabler.setEnable(enable);

2

Kotlin에서 하나의 값을 설정하기 위해 추가 클래스를 만들지 않으려면 LayoutManager에서 익명 클래스를 만들 수 있습니다.

recyclerView.layoutManager = object : LinearLayoutManager(context) {
    override fun canScrollVertically(): Boolean = false
}

1

다음은 데이터 바인딩으로 수행 한 방법입니다.

            <android.support.v7.widget.RecyclerView
                android:id="@+id/recycler_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:clipChildren="false"
                android:onTouch="@{(v,e) -> true}"/>

"true"대신에 리사이클 러보기가 비활성화 및 활성화간에 전환되도록 조건에 따라 변경된 부울 변수를 사용했습니다.


1

여러 개의 RecycleView가 포함 된 조각으로 나왔으므로 각 RecycleView에서 하나의 스크롤 막대 대신 하나의 스크롤 막대 만 필요합니다.

그래서 2 개의 RecycleView가 들어있는 상위 컨테이너에 ScrollView를 넣고 RecycleView에 사용 android:isScrollContainer="false"합니다.

<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layoutManager="LinearLayoutManager"
    android:isScrollContainer="false" />

1

더하다

android:descendantFocusability="blocksDescendants"

SrollView 또는 NestedScrollView의 자녀 (및 ListView의 부모, recyclerview 및 gridview 중 하나)


1

표준 기능 만 사용하여 스크롤링을 비활성화하는보다 직접적인 방법이 있습니다 (기술적으로는 스크롤링 이벤트를 가로 채서 조건이 충족되면 종료하는 것입니다). RecyclerView라는 메소드가 있으며 addOnScrollListener(OnScrollListener listener)이것을 사용하면 스크롤하지 못하게 할 수 있습니다.

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);
        if (viewModel.isItemSelected) {
            recyclerView.stopScroll();
        }
    }
});

사용 사례 :RecyclerView 실수로 다른 항목으로 스크롤하여 방해받지 않고 일부 항목을 클릭하여 작업을 수행 할 수 있도록 항목 중 하나를 클릭하면 스크롤을 사용하지 않도록 설정한다고 가정 해 보겠습니다 . 항목을 다시 스크롤하여 활성화합니다. 이를 OnClickListener위해의 모든 항목 에 첨부하려고 RecyclerView하므로 항목 을 클릭하면 isItemSelected에서 false로 전환 됩니다 true. 이렇게하면 스크롤하려고 할 때 RecyclerView자동으로 메소드를 호출 onScrollStateChanged하고로 isItemSelected설정되어 있기 때문에 true즉시 중지됩니다.RecyclerView 기회가 .

참고 : 사용 편의성을 높이려면 클릭 을 방지 하는 GestureListener대신 사용하십시오 .OnClickListeneraccidental


stopScroll()스크롤을 멈추는 것이 아니라 스크롤 리사이클 뷰를 중지 / 중지하는 것입니다.
Farid

@FARID, 예.이 메소드는 진행중인 스크롤을 중지하며,이 경우 사용자가로 isItemSelected설정하여 RecyclerView 컨텐츠를 스크롤하려고 할 때마다 수행됩니다 true. 그렇지 않으면 스크롤을 비활성화하기 위해 사용자 정의 RecyclerView가 필요 하며이 솔루션이 제공하는 약간의 추가 기능이 필요하기 때문에 피하기를 원했습니다.
Tim Jorjev 2016 년

0

이것을 XML로 recycleview에 추가하십시오.

 android:nestedScrollingEnabled="false"

이처럼

<android.support.v7.widget.RecyclerView
                    android:background="#ffffff"
                    android:id="@+id/myrecycle"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:nestedScrollingEnabled="false">

0

터치하여 스크롤을 중지하지만 명령을 통해 계속 스크롤하려면 :

if (appTopBarMessagesRV == null) {appTopBarMessagesRV = findViewById (R.id.mainBarScrollMessagesRV);

        appTopBarMessagesRV.addOnItemTouchListener(new RecyclerView.SimpleOnItemTouchListener() {
            @Override
            public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {

                if ( rv.getScrollState() == RecyclerView.SCROLL_STATE_DRAGGING)
                {
                     // Stop  scrolling by touch

                    return false;
                }
                return  true;
            }
        });
    }
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.