【发布时间】:2016-11-20 10:37:37
【问题描述】:
我正在开发一个小 Android 应用程序,它显示带有一些标记的 MapFragment。问题是我发现应用程序启动之间的时间和地图看起来太长了。所以我想在开头显示ProgressDialog,当地图开始渲染时,关闭ProgressDialog并显示地图。
到目前为止,我通过创建MapFragment 的实例、调用getMapAsync 并在onMapReady 回调中显示片段来进行尝试。但是在onCreate中不显示fragment好像不行...
这是我的代码:
public class MyApp extends FragmentActivity implements OnMapReadyCallback
{
private ProgressDialog mLoading;
private MapFragment mFragment;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mFragment = MapFragment.newInstance();
mFragment.getMapAsync(this);
// Dosen't work without the line below
// getFragmentManager().beginTransaction().replace(android.R.id.content, mFragment).commit();
mLoading = ProgressDialog.show(this, "Chargement", "", true, false);
}
@Override
public void onMapReady(GoogleMap googleMap)
{
googleMap.setOnMyLocationButtonClickListener(null);
googleMap.setMyLocationEnabled(false);
googleMap.getUiSettings().setMyLocationButtonEnabled(false);
googleMap.getUiSettings().setMapToolbarEnabled(false);
// When map renders entirely, dismiss ProgressDialog and display MapFragment
mMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback()
{
@Override
public void onMapLoaded()
{
mLoading.dismiss();
getFragmentManager().beginTransaction().replace(android.R.id.content, mFragment).commit();
}
});
// ...
}
我是 Android 世界的新手,所以我需要您的帮助。 如果我在代码或英语方面有错误请告诉我,我正在学习。
【问题讨论】:
标签: android android-fragments google-maps-api-3