2016-09-27 117 views
0

我遇到了一個相當具體的問題。我在ActivityFrameLayout中有MapFragment,因此Toolbar覆蓋了該地圖。這是因爲Toolbar有時需要在屏幕上進行動畫製作,並且如果它不覆蓋地圖,則會出現間隙。MapFragment更新按鈕位置

現在,當設備沒有有效的Google Play Services時,MapFragment將顯示一條消息和一個按鈕來默認更新服務。我的問題是,此消息顯示在地圖的左上角,低於Toolbar

有沒有人有關於如何解決這個問題的想法?也許檢查自己的Google Play Services的有效性,並創建一些無效的填充?還是有一種簡單的解決方案,比如在地圖上設置某種重力,使更新信息居中。

我很感激幫助。

回答

1

您可以使用GoogleMap.setPadding()方法在地圖邊緣周圍添加填充。或創建自定義alertDialog從而表現出有關用戶的信息穀歌播放服務

與對話

GoogleApiAvailability api = GoogleApiAvailability.getInstance(); 
     int code = api.isGooglePlayServicesAvailable(activity); 
     if (code == ConnectionResult.SUCCESS) { 
     // 
     } else { 
      AlertDialog alertDialog = 
       new AlertDialog.Builder(activity, R.style.AppCompatAlertDialogStyle).setMessage(
         "You need to download Google Play Services in order to use this part of the application") 
         .create(); 
      alertDialog.show(); 
     } 
+0

的'setPadding'方法是行不通的例子,因爲沒有加載地圖,但這個想法使用對話框好。我在之前的項目中使用了它,並注意到我使對話不可能被解僱(如果這將被解僱,用戶將在空白屏幕上)。 –

+0

你應該添加.setCancelable(假) –

+0

或.setOnDismissListener(新DialogInterface.OnDismissListener(){ @覆蓋 公共無效onDismiss(DialogInterface dialogInterface){// 完成活動或返回到之前的片段 }} ) –