私はいくつかのマーカーでMapFragment
を表示する小さなAndroidアプリケーションで作業しています。物事は、アプリが起動されてから地図が長すぎるように見えるまでの時間を見つけることです。だから最初にProgressDialog
を表示し、レンダリングを開始したらProgressDialog
を閉じてマップを表示します。地図が表示されるまでの画面の読み込み
これまで、MapFragment
のインスタンスを作成し、getMapAsync
を呼び出して、onMapReady
コールバックにそのフラグメントを表示しようとしました。
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の世界に少しの初心者だ:しかし、あなたが私のコードであるonCreate
...
でフラグメントを表示しない場合、それは動作しないようですだから私はあなたの助けが必要です。 私がコードや英語で間違っていると教えてください、私は両方を学んでいます。
私は試みましたが、表示が隠されているとマップが読み込まれないようです。その場合、onMapLoadedコールバックは呼び出されません。 onMapReadyでVewを可視に設定したとしても。 – Zartech
Hm、odd ...私が今日チャンスをつくったとき、私はそれをちょっと混乱させ、私があなたのために何を思いつくのか見てみましょう! – T3KBAU5
私はそれで私のアプリで少し遊んで、私の答えを改訂しました。これは私にとってはうまくいくようでしたが、もしそうなら私に教えてください! – T3KBAU5