我使用的模板允许我们在标签之间水平滑动
但我的一个标签是 MapView ,所以当我在MapView中向左/向右滑动时,它会切换标签而不是移动地图。
有没有办法只在MapView标签中禁用手势?
由于
答案 0 :(得分:17)
如果链接已死,我在这里复制了代码:
使用这个确切的代码创建一个新类,它将阻止MapView接收除地图相关手势之外的任何其他手势。不要忘记在这些代码上方添加package
和import
(CTRL + SHIFT + O)
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对这个问题的回答!