我在滚动视图中使用Mapbox地图。在这个scrollview中,我有主LinearLayout,在这里面,我有5个不同的信息区域。该地图位于第三个区域。Mapbox - 避免自动中心
由于第一和第二区域中的数据量很大,在显示时,地图区域必须为而不是可见,并且要查看它,您需要滚动。
不幸的是,Mapbox似乎有一个“自动中心”系统:只要滚动视图开始显示,它的位置就会自动设置到地图的中心。 因此,用户必须回滚到滚动视图的顶部。 如何避免这种“初始位置功能”?
注意:这不是一个重复的问题:Using mapbox in scrollview, scrollview sliding to the position where mapbox is put in the page 因为问题不是“如何移动地图并且不移动滚动视图”。问题是滚动视图的初始位置。还有答案“do mScrollView.scrollTo(0,0);”是不可接受的,因此,scrollview首先集中在地图上,而AFTER则有一个滚动。
编辑:这里有两个图片和更多的细节。
这第一扣显示垂直模式滚动视图。我有一个名为“INFORMAÇOES”的第一个区域,第二个区域名为“TIPO DEOCORENÇA”,第三个区域是地图,后面是另外两个区域。 由于区域1和区域2的大小,在垂直模式下,地图区域部分可见。此快照显示开始显示时的屏幕。
该第二扣合是采取在同一时间,从而在显示的开始,但在水平模式。当然,可见数据量是不同的。我们可以看到,地图区域似乎强制滚动以便显示。
做了一些测试后,我发现奇怪的想法:当你滚动时,你通常在屏幕顶部设置数据的顶部。在地图的情况下,情况并非如此。在显示开始时出现的第一个元素是Mapbox徽标。
这里是XML部分:
<LinearLayout
android:layout_margin="5dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:layout_below="@id/linearLayout_type"
android:id="@+id/linearLayout_map">
<com.mapbox.mapboxsdk.maps.MapView
mapbox:zoom="12"
android:id="@+id/mapview_inter"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
我做了测试:
1 - 把一个机器人:能见度com.mapbox.mapboxsdk.maps.MapView = “水涨船高”。这不被允许。
2 - 在com.mapbox.mapboxsdk.maps.MapView中放置android:visibility =“invisible”。这不被允许。
3 - 在地图的linearlayout(linearLayout)中放置一个android:visibility =“invisible”。什么都不变。地图不可见,但“滚动”发生。
4 - 在地图的linearlayout(linearLayout)中放置android:visibility =“gone”。在这种情况下,没关系:数据的“INFORMAÇOES”部分位于顶部。但他们没有渲染地图。所以,当我执行
LinearLayout tmp = (LinearLayout) findViewById(R.id.linearLayout_map);
tmp.setVisibility(View.VISIBLE);
在地图上看到,我看到...什么:(
有什么建议?
你可以添加图片/ GIF格式发生了什么?我不确定我是否理解这个问题。 – cammace
我会在几分钟内做到这一点。最后的测试让我认为这是与Mapbox徽标的链接。 – Peter