我在滾動視圖中使用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