2014-02-14 29 views
0

好吧,标题是混乱的,但这里的概念。移动ListView或MapFragment取决于滚动位置

在活动启动时,它应该是这样的: Start

如果你一直拉下来的时候ListView控件到达顶部的地图会越来越大,像这样: ListView bottom

但如果你向下滚动在ListView中,地图会变得更小,如下所示: Map top

现在,Android上可以这样做了。感谢您的回复:D

回答

0

以某种方式,这是可能的。你这样做的方式是首先确定用户滑动的方向。您可以将列表视图和地图放在两个单独的片段中,然后通过添加SimpleOnGestureListener(出于您的目的,您将处理垂直滑动)来确定用户在任一片段上的滑动。

然后,您可以根据具体情况以编程方式将片段的权重设置为变大/变小。由于您的列表和地图将位于两个单独的容器中(可能是碎片,LinearLayout,RelativeLayout等)。在我说确定以这种方式进行之前,我需要更多的细节。但要回答你的问题,是的,这是可能的。我建议你考虑以下两个链接以获得更好的想法,然后确定如何继续(它可能不是同你的情况,但你就至少得拿到的总体思路):

How to detect swipe direction between left/right and up/down

How to add Action bar options menu in Android Fragments

0

当你滚动列表时,你当然可以改变地图大小,但我认为性能不会很好。谷歌地图通常需要一段时间才能渲染,而你无法真正控制它。如果你想走这条路线,尝试在地图视图中设置新的LayoutParams。

另一种选择是用ImageView替换地图。地图API支持这与snapshot() method。然后,您将在滚动时将图像无缝地替换为图像。

第三个选项是Google地图的功能。基本上,你有一张填满屏幕的地图,然后是从底部出现并覆盖地图的滑动布局。此抽屉向上滑动,然后地图重新居中,以便任何可见的部分显示标记。这可能会有任何选择的最佳表现。