我有一个视图鳍状肢,其内容超出了屏幕尺寸,所以我把它放在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>
答案 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。