2016-09-27 75 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){// 完成活动或返回到之前的片段 }} ) –