2014-02-14 33 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地圖的功能。基本上,你有一張填滿屏幕的地圖,然後是從底部出現並覆蓋地圖的滑動佈局。此抽屜向上滑動,然後地圖重新居中,以便任何可見的部分顯示標記。這可能會有任何選擇的最佳表現。