2017-06-05 82 views
0

我正在關注本教程http://www.brightec.co.uk/ideas/android-listview-alphabet-scroller以實現包含字母的側視圖的字母表列表視圖,您可以通過滾動字母來使列表視圖直接滾動到該字母。它適用於他們的例子,但我neet把這個代碼放在一個片段中,並且滾動不再起作用。我不知道如何轉化以下,因此工作在一個片段:在片段中的Android滑動偵聽器

private class SideIndexGestureListener extends GestureDetector.SimpleOnGestureListener { 
    @Override 
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { 
     Log.d("DEBUG", "SideIndexGestureListener.onScroll() distanceX=" + distanceX + " distanceY=" + distanceY); 
     // we know already coordinates of first touch 
     // we know as well a scroll distance 
     sideIndexX = sideIndexX - distanceX; 
     sideIndexY = sideIndexY - distanceY; 

     // when the user scrolls within our side index 
     // we can show for every position in it a proper 
     // item in the country list 
     if (sideIndexX >= 0 && sideIndexY >= 0) { 
      displayListItem(); 
     } 

     return super.onScroll(e1, e2, distanceX, distanceY); 
    } 
} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    if (mGestureDetector.onTouchEvent(event)) { 
     return true; 
    } else { 
     return false; 
    } 
} 

我厭倦了以下內容:

@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.activity_main_fragment_contacts, container, false); 

    mGestureDetector = new GestureDetector(context, new SideIndexGestureListener()); 

    rootView.setOnTouchListener(new View.OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent event) { 
      if (mGestureDetector.onTouchEvent(event)) { 
       return true; 
      } else { 
       return false; 
      } 
     } 
    }); 

    return rootView; 
} 

但它從來沒有達到onScroll methos所以我不知道我做錯了什麼?

回答

0

好吧我用代碼弄了一下,並設法通過在設置到rootwiew的偵聽器的onTouch方法中始終返回true來使其工作。

相關問題