2

可能重复:
viewpager 页面中 mapview 的手势问题

我使用允许我们在选项卡之间水平滑动的模板

但是我的选项卡之一是MapView,因此当我在该 MapView 中向左/向右滑动时,它将切换选项卡而不是移动地图。

有没有办法仅在该 MapView 选项卡中禁用手势?

谢谢

4

1 回答 1

17

我从这个问题中找到了答案

万一链接失效,我在这里复制了代码:

使用这个确切的代码创建一个新类,它将阻止 MapView 接收除地图相关手势之外的任何其他手势。不要忘记在这些代码上方添加您的packageand (CTRL+SHIFT+O)import

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

然后main.xml将其更改<android.support.v4.view.ViewPager ... />为:

<com.yourPackage.CustomViewPager
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main" />

感谢 Jorge Aguilar 对这个问题的回答!

于 2012-11-08T03:37:00.393 回答