我目前正在開發一個使用Xamarin.Android的android應用程序。在這個應用程序中,我使用DrawerLayout(來自支持庫v4)來顯示我的應用程序內容和一個菜單,我可以通過按下工具欄中的按鈕或向右滑動來打開。MapFragment非常緩慢,勉強迴應
在抽屜的第一部分(頁面內容)中,我有一個工具欄取代了經典動作欄,搜索欄和我的MapFragment。
在菜單部分,我有一個scrollview包含一個linearlayout,它本身包含一些像按鈕,textview等元素,用戶將用於連接或註冊。
菜單滑動順暢,每個元素都正確響應,但mapfragment真的麻煩顯示地圖。幾秒鐘後,它會顯示一個空的網格,我必須點擊該片段才能加載地圖的幾個部分。幾乎沒有控件響應,有時會在很多等待之後進行雙擊,並且永久加載更精確的圖塊。
顯然有東西阻止我的地圖加載正確,但我不知道它是什麼。
這裏是地圖片段:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapFragment"
android:layout_marginTop="94dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
這裏是我如何加載我的地圖中活動文件(在OnCreate功能):
MapFragment mapFrag = (MapFragment)FragmentManager.FindFragmentById(Resource.Id.mapFragment);
GoogleMap map = mapFrag.Map;
if(map != null)
{
// The GoogleMap object is ready to go (well, should be)
}
我跟着它來創建我的地圖片段:https://developer.xamarin.com/guides/android/platform_features/maps_and_location/maps/part_2_-_maps_api/
如果需要,我可以提供更多信息。我完全不知道這是從哪裏來的。我在測試應用程序中使用了完全相同的代碼(除了它是一個簡單的線性佈局,沒有抽屜,也沒有保證金),它的工作完美,這就是爲什麼我很困惑。
編輯:讓我的模擬器和手機在寫作時運行應用程序(至少需要五分鐘),但它仍然沒有正確響應。在Genymotion仿真器(API 16)和我的OnePlus One(API 21)上測試,結果相同。
在此先感謝。
您確定載入地圖是什麼導致掛斷? – zgc7009
你有任何網絡問題?假設您的應用程序未創建阻止問題,我會查看您的網絡活動(通過Charles,WireShark等)以檢查來自Google CDN的響應時間。您的手機和Genymotion上的Google地圖應用程序正常嗎? – SushiHangover
是的,我確定地圖是原因,因爲地圖在加載時遇到問題,其他所有內容在應用程序中都完美運行。 @SushiHangover這是我認爲在某些時候,所以我檢查了我的網絡,這似乎工作正常。 WiFi模擬器的光纖配置正確,LTE使用我的手機。我通過使用我提供的xamarin鏈接啓動示例應用程序進行雙重檢查,並且地圖加載並順利響應。問題顯然在我的代碼中,但我發現了一個奇蹟解決方案:SupportMapFragment而不是MapFragment。 – YumeYume