2017-04-03 71 views
1

禁用RecyclerView自動滾動從API 24開始,RecyclerView將自動滾動到用戶單擊該項目時部分顯示的項目。 如何禁用此功能?Android - 如何從點擊

下面的代碼在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'中找到它。奇蹟般有效! –