2013-06-11 10 views
11

私は主なViewPagerを持ち、ViewPagerの各ページにコンテンツ全体がScrollViewとしてあり、そのScrollViewの内部に別のViewPagerがあります。ScrollViewsを持つScrollViewsを持つAndroid ViewPager

これは狂っているかもしれませんが、基本的に外側のViewPagerにはニュース記事が含まれているため、記事は長いので、ScrollViewがあり、ScrollViewの内部には複数のサムネイル/画像があります。

タッチイベントの傍受が異なるいくつかの異なるカスタムViewPerを試しましたが、完璧に見えないようです。それは完全にすべてのタッチイベントを吸収するので、ScrollViewの垂直スクロールはその領域では機能しません。または、内側のスクロールビューを水平方向にスクロールさせるのは難しいでしょう。

誰かが完璧な解決策を持っていますか?

+0

はあなたの問題を解決しましたか?私はまさにあなたが試みたものをやろうとしています。 – tasomaniac

+0

はい私の解決策は以下の通りです。あなたが助けを必要とするかどうか私に教えてください! – egfconnor

+0

私はその解決策を試しましたが、スクロールレイアウト内でクリック可能なアイテムに問題が生じます。クリック可能なアイテムを縦方向にスクロールすると、スクロール・ビューはスクロールしていません。 – tasomaniac

答えて

12

誰もが私の解決策を知りたい場合は:

public class CustomScrollView extends ScrollView { 
private GestureDetector mGestureDetector; 
View.OnTouchListener mGestureListener; 

public CustomScrollView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    mGestureDetector = new GestureDetector(context, new YScrollDetector()); 
    setFadingEdgeLength(0); 
} 

@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) { 
    return super.onInterceptTouchEvent(ev) 
      && mGestureDetector.onTouchEvent(ev); 
} 

// Return false if we're scrolling in the x direction 
class YScrollDetector extends SimpleOnGestureListener { 
    @Override 
    public boolean onScroll(MotionEvent e1, MotionEvent e2, 
      float distanceX, float distanceY) { 
     if (Math.abs(distanceY) > Math.abs(distanceX)) { 
      return true; 
     } 
     return false; 
    } 
} 
} 

をし、最も外側のViewPagerは次のとおりです。

public class NestingViewPager extends ViewPager { 

public NestingViewPager(final Context context, final AttributeSet attrs) { 
    super(context, attrs); 
} 

public NestingViewPager(final Context context) { 
    super(context); 
} 

@Override 
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) { 
    if (v != this && v instanceof ViewPager) { 
     return true; 
    } 
    return super.canScroll(v, checkV, dx, x, y); 
} 
} 
+2

このコードは私の人生を救った!ありがとう:) –

+0

あなたを助けてくれてうれしい! – egfconnor

+0

こんにちは私はスクロールビューに問題があり、その中にページャを表示するが、頂点スクロールはウルカスタンスクロールビューでも機能しません?? – Tony

関連する問題