をトリガしません。私は私のブレークポイントによるとSupportMapFragmentManagersはgetMapAsync()onMapReady(Googleマップマップ)
onViewCreated()
が呼び出されますが、onMapReadyは()(トリガされません
this.googleMap = map
にブレークポイント)と呼ばれていません
public abstract class MyMapFragment implements OnMapReadyCallback
{
//
public GoogleMap googleMap;
SupportMapFragment mapFragment;
@IdRes
public abstract int getSupportMapFragId();
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// http://stackoverflow.com/a/36592000/5102206
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
// Do something for lollipop and above versions
mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(getSupportMapFragId());
} else {
// do something for phones running an SDK before lollipop
mapFragment = (SupportMapFragment) getFragmentManager().findFragmentById(getSupportMapFragId());
}
mapFragment.getMapAsync(this);
}
//..
@Override
public void onMapReady(GoogleMap map) {
this.googleMap = map;
}
}
を持っています
Android 5,6,7では、それまでのところうまく動作し、地図を見ることができます。 Android 4.X(API 16 - API 19)デバイスでは、自分のアプリが起動しますが、そこにはフリーズしているようです...白い空白の画面が表示されます。
Android 4.X OSデバイスの場合: 1. getFragmentManager()を使用すると、mapFragmentオブジェクトはelse条件の後でnullになります。 2. getChildFragmentMenager()を使用すると、mapfragmentは有効でnull以外のように見えますが、onMapReadyはトリガーされません。
私はここで何が欠けていますか?
なぜ 'SupportMapFragment'を拡張したり、直接使用したりしませんか? Android Jelly(API 16)以降では、Google Playでサポートされている端末の95.2%をカバーしています。 –
@ JPVentura私はそれを一時的にしましたが、それは何も変わりませんでした。私は同じ結果を持っていた。 –
1.なぜあなたは 'SupportMapFragment'を' MyMapFragment'の中に入れ子にしていますか? 2.誰も使用していないAPIレベルを明示的にチェックしているのはなぜですか? –