2017-04-03 27 views
1

API24以降、RecyclerViewは、ユーザーが部分的に表示するアイテムに自動的にスクロールします。 この機能を無効にするにはどうすればよいですか?Android - RecyclerViewの自動スクロールを無効にする方法

以下のコードはsupport-library 25.0.1より前に動作します。

@Override 
    public boolean requestChildRectangleOnScreen(View child, Rect rect, boolean immediate) { 
     Object tag = child.getTag(); 
     if(tag != null && tag.toString().equalsIgnoreCase("preventAutoScroll")){ 
      return false; 
     } 
     return super.requestChildRectangleOnScreen(child, rect, immediate); 
    } 

それはTextViewだとテキストを選択する必要がありますので、フォーカス可能とクリッカブルにする必要があります。

答えて

2

リサイクラビューでレイアウトマネージャのオーバーライドバージョンを設定します。私の場合、特定の子ビューにフォーカスしたときに無効にしたいと考えました。

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context) { 
     @Override 
     public boolean requestChildRectangleOnScreen(RecyclerView parent, View child, Rect rect, boolean immediate, boolean focusedChildVisible) { 

      if (((ViewGroup) child).getFocusedChild() instanceof YourFocusableChildViewClass) {      
       return false; 
      } 

      return super.requestChildRectangleOnScreen(parent, child, rect, immediate, focusedChildVisible); 
     } 
    }; 
+0

私はRecyclerViewでこの方法を使用していません。サードパーティのライブラリを使用していますか? –

+1

私はそれを 'LayoutManager'で見つけました。魅力的な作品! –

関連する問題