android - Mapview Fragment + ViewPager,导致奇怪的交互

标签 android android-mapview android-viewpager gesture-recognition

我花了很多时间试图在我的 viewpager 中运行一个功能性的、响应式的 mapview fragment ,现在它终于可以运行了,我不太清楚为什么!

背景: 我正在为我的操作栏使用 ActionBarSherlock,我正在使用 viewpager 在三个 fragment 之间切换:列表、 ImageView + TextView 和 map View 。我的 viewpager 有一个 viewpagerindicator。我正在使用 android-support-v4 的 map 版本。

什么有效: - 覆盖 viewpager 的 onInterceptTouchEvent 方法以返回 false - 在不执行任何操作的 map View 上设置 onClickListener。

map View 会出现,但在我添加监听器之前不会响应,但为什么添加一个 onclicklistener 会使所有手势响应?

最佳答案

也许你应该重新开始。就我而言,我所要做的就是将 MapFragment 放入带有 FragmentPageAdapter 的 ViewPager 中。 然后使用覆盖方法创建了我自己的 ViewPager,只是为了使 MapFragment 可用:

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    // hacky hack to never intercept map pages events unless its on the
    // very edge of screen - last or first fifth of the view size
    if (((FragmentPagerAdapter) getAdapter()).getItem(getCurrentItem()) instanceof SupportMapFragment) {
        if (event.getAction() == MotionEvent.ACTION_DOWN && event.getX() < (getWidth() - (getWidth() / 5)) && event.getX() > (getWidth() / 5)) {
            // Never allow swiping to switch if not right on the edge
            return false;
        }
    }
    return super.onInterceptTouchEvent(event);
}

关于android - Mapview Fragment + ViewPager,导致奇怪的交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11304820/

相关文章:

java - 快速将字符串转换为数据库 HTTP.UTF8

iphone - 获取有关 map View 选定注释的信息

java - fragment 自行重新实例化并添加到 Activity 中

android - onActivityResult 第二次调用时返回intent data = null

android - 如何使用Android的ListView获得可滚动的背景图像

安卓 map View : Event for animateTo is finished?

android - Google android mapview lat long to topixel投影问题

android - Android 中 Pageviewer 内的 webview 组件中的水平滚动滑动

android - 如何动态更改 ViewPager 中的 fragment ?

java - Android 应用程序的后端