Android:flipper中的滚动视图

Android:flipper中的滚动视图,android,scroll,flip,Android,Scroll,Flip,我有一个脚蹼: <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/ParentLayout" xmlns:android="http://schemas.android.com/apk/res/android" style="@style/MainLayout" > <LinearLayout android:id="@+id/Flipp

我有一个脚蹼:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/ParentLayout"
    xmlns:android="http://schemas.android.com/apk/res/android" style="@style/MainLayout" >
            <LinearLayout android:id="@+id/FlipperLayout" style="@style/FlipperLayout">
                <ViewFlipper android:id="@+id/viewflipper" style="@style/ViewFlipper">
                    <!--adding views to ViewFlipper-->
                    <include layout="@layout/home1" android:layout_gravity="center_horizontal" />
                    <include layout="@layout/home2" android:layout_gravity="center_horizontal" />
                </ViewFlipper>
            </LinearLayout>
</LinearLayout>
}

有人能给我指一下正确的方向吗


谢谢。

如前所述,视图翻转器一次只显示一个视图。当开发人员想让用户选择如何查看数据(列表、缩略图等)时,这是一种非常有用的切换。因此,不能同时滚动和拖动的原因是,一个视图只滚动,另一个视图只拖动,一次只打开一个视图

如果你想让你的显示器同时滚动和翻转,你必须设计一个既能滚动又能翻转所需方法的布局。实现这一点的第一步是删除ViewFLipper并使用其他工具


希望这是有帮助的

基本上,如果在ViewFlipper中有一个ScrollView,则只需将onTouchListener附加到ScrollView:

    ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView);        
    scrollView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event){
            if (myGestureDetector.onTouchEvent(event)){
                return true;
            }
            else{   
                return false;
            }
        }
    });

我试着用这种方法使它工作:

@Override
public boolean onTouchEvent(MotionEvent event) 
{
    scrollView.onTouchEvent(event); 
    return super.onTouchEvent(event);
}

@Override
public boolean dispatchTouchEvent(MotionEvent e)
{
    gestureDetector.onTouchEvent(e);
    return super.dispatchTouchEvent(e);
}

谢谢你的快速回答。事实上,我正在考虑一种方法,在ParentLayout级别(封装翻转器的级别)捕获运动事件,并在该级别确定该手势是水平手势(翻转器考虑)还是垂直手势(传递到滚动视图)。这就是为什么onInterceptTouchEvent在我看来是正确的。所以没有办法实现我的想法?我想也许我不完全确定你想要实现什么。home1和home2是什么?每个手势应该完成什么?你的应用程序应该做什么?home1和home2布局包含每个图像按钮,每个图像按钮触发一个活动。home1和home2包含在名为home的布局中,该布局承载flipper。现在:当用户滑动accross时,我需要显示下一个主布局,这是由flipper完成的。但是由于它们有很多图像按钮,当手机处于横向模式时,它们不适合所有的屏幕,所以我需要滚动home1布局。好的,我明白了。你没有理由不能这么做。我认为您的布局可能是正确的,您只需要正确地实现手势代码。我认为你也在正确的轨道上,但我对手势一窍不通。。。很抱歉
@Override
public boolean onTouchEvent(MotionEvent event) 
{
    scrollView.onTouchEvent(event); 
    return super.onTouchEvent(event);
}

@Override
public boolean dispatchTouchEvent(MotionEvent e)
{
    gestureDetector.onTouchEvent(e);
    return super.dispatchTouchEvent(e);
}