我花了很多时间试图在我的 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/