2017-06-05 11 views
0

このチュートリアルhttp://www.brightec.co.uk/ideas/android-listview-alphabet-scrollerのアルファベットリストビューを実装するには、リストビューをスクロールしてその文字に直接スクロールさせることができる文字を含むサイドビューを実装します。しかし、私はこのコードをフラグメントに入れようとしていません。スクロールはもう動作しません。フラグメント内の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を返すようにしました。

関連する問題