Android viewpager页面中mapview的手势问题

Android viewpager页面中mapview的手势问题,android,google-maps,android-viewpager,Android,Google Maps,Android Viewpager,我的应用程序的主界面是一个viewpager,用户只需水平滑动页面即可进入各个页面。其中一个页面有一个谷歌地图视图(粘贴在下面)。我的问题是,如果用户在地图页面上并使用水平滑动手势,则页面将滑动到下一页,而不是地图侧向移动。这就好像viewpager在地图前得到了手势一样 如果用户很聪明,开始沿对角线或垂直方向滑动地图,地图开始移动,然后手势可以水平继续。但我更喜欢地图移动,而不是简单的水平滑动手势页面。始终可以使用textview滑动页面 我有什么办法可以做到这一点吗? 谢谢 加里 当然有:

我的应用程序的主界面是一个viewpager,用户只需水平滑动页面即可进入各个页面。其中一个页面有一个谷歌地图视图(粘贴在下面)。我的问题是,如果用户在地图页面上并使用水平滑动手势,则页面将滑动到下一页,而不是地图侧向移动。这就好像viewpager在地图前得到了手势一样

如果用户很聪明,开始沿对角线或垂直方向滑动地图,地图开始移动,然后手势可以水平继续。但我更喜欢地图移动,而不是简单的水平滑动手势页面。始终可以使用textview滑动页面

我有什么办法可以做到这一点吗?
谢谢 加里


当然有:

public class CustomViewPager extends ViewPager {

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

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

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

}
这将使地图忽略地图内的所有幻灯片,而只关心地图外的幻灯片/拖拉。希望能有帮助。(我现在为具有水平滚动的webview执行此操作)

编辑:忘了提及在您的布局中需要使用CustomViewPager而不是ViewPager

<com.yourpackage.CustomViewPager
            android:id="@+id/viewpager"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" 
        />

如果使用谷歌地图V2,请使用

scrollingView.getClass().getPackage().getName().StartWith(“地图”)中可以滚动方法:

@Override
protected boolean canScroll(View scrollingView, boolean checkV, int dx, int x, int y) {
    if (scrollingView.getClass().getPackage().getName().startsWith("maps.")) {
        return true;
    }
    return super.canScroll(scrollingView, checkV, dx, x, y);
}
因为使用maps v2时,scrollingView
maps.j.b

在我的代码中,还使用了以下类:

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;

我将您的类放入我的主activity.java文件中。我将xml更改为调用com.deanblakly.CustomViewPager。已获取运行时类NotFoundException com.deanblakly.CustomeviewPage。有什么事我忘了做吗?(android和java都是新的)。这应该是在一个单独的类中。您需要创建一个新文件并放入此代码。在这种情况下,如果要放置“com.deanblakly.CustomViewPager”,则在“com”folder.Jorge内的文件夹“deanblakly”中创建文件“CustomViewPager”。是的,一旦我把这个类放到一个单独的文件中,它就起作用了。谢谢。我这样做了,返回的视图可以滚动它是一个CustomViewPager而不是MapView我正在触摸地图(我使用SupportMapFragment)因为这种方法用于Viewpager,就像你在扩展后看到的那样,我不知道它是否适用于MapView,但你可以尝试在那里进行更改。scrollingView.getClass()每次对我来说都是空的,所以这是错误的。可能
scrollingView
null
或者您使用匿名
scrollingView
class?有关
Object.getClass()的文档没有说明
getClass
返回
null
的情况。
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;