2

在我的应用程序中,我有一个活动,其中包含底部的图像和列表视图。以下是活动中要做的事情。

1. the image view at the top of the page must be of swipe type to show other images.
2. when the list view gets scrolled the image must get moved along with it.
3. in the same activity i have a button, when the button is clicked the image must be switcher over to be a mapview.

我所做的是,

1. I have the image view and mapview in view switcher of a separate layout named as header
2. The header layout is been added in the list view header part.

现在,当列表视图滚动时,标题部分随之滚动,同样,当视图切换时,我能够在图像视图和地图视图之间切换。但是地图似乎是固定的,无法移动以查看各个点

如何在列表视图标题的地图视图内移动。

4

1 回答 1

0

这是一个例子,但不是解决方案。在这个例子中,我制作了一个自定义的滚动视图,它在 x 方向滚动时返回 false(表示事件尚未处理,应该传递到下一个视图):

public class CustomScrollView extends ScrollView {
    private GestureDetector mGestureDetector;
    View.OnTouchListener mGestureListener;

    public CustomScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mGestureDetector = new GestureDetector(new YScrollDetector());
        setFadingEdgeLength(0);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev);
    }

    // Return false if we're scrolling in the x direction  
    class YScrollDetector extends SimpleOnGestureListener {
        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
            if(Math.abs(distanceY) > Math.abs(distanceX)) {
                return true;
            }
            return false;
        }
    }
}

您需要在视图切换器的某个区域执行类似的操作。因此,您需要修改基本的 viewswitcher 组件并制作自己的变体。

作为上述建议的替代方案,我会考虑不这样做。如果您查看使用地图的应用程序,这确实不是一种正常行为,我怀疑它会运行非常流畅或进行良好的用户交互。一般来说,地图在获得尽可能多的空间时效果最好。看看一些基本的地图应用程序:谷歌导航、谷歌地图、谷歌纬度、Yelp。

于 2012-12-05T05:22:12.990 回答