ViewFlipper在android中的滚动视图内

时间:2014-04-04 06:59:37

标签: android scrollview viewflipper

我有一个视图鳍状肢,其内容超出了屏幕尺寸,所以我把它放在ScrollView中。但是在这样做之后,视图翻转器的OnTouchEvent不起作用,因为滚动手势由ScrollView处理。

我希望滚动视图处理滚动,但也允许其子(ViewFlipper)处理scoll事件。我怎样才能做到这一点。

这是鳍状肢的代码和滚动视图:

<ScrollView
    android:id="@+id/scroll"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent">
        <ViewFlipper
            android:id="@+id/flipperDetails"
            android:layout_height="fill_parent"
            android:layout_width="fill_parent"></ViewFlipper>
</ScrollView>

1 个答案:

答案 0 :(得分:1)

我对嵌套的viewpager使用类似的代码,这也适用于scrollview:

public class NestedScrollView extends ScrollView {

public NestedScrollView(Context context) {
    super(context);
}

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

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

同时将xml中的ScrollView更改为NestedScrollView。

修改

<强> canScroll

  

在给定dx的delta值的情况下测试v的子视图中的可滚动性。

     

如果v的子视图可以按dx的delta值滚动,则返回true。