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);
}