0

そのため、Google マップを表示しようとしている Fragment クラスに次のコードがあります。場所が正常に検出され、ズームされても、他のすべての UI コンポーネント (場所ボタンなど) が表示されず、マップが何らかの形でジェスチャに反応しません。何が問題ですか?

インフレートする前に setupMap() を呼び出そうとすると、明らかにマップの準備ができておらず、getMap で null ポインターを取得します。

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
      mMapFragment = MapFragment.newInstance();
      FragmentTransaction fragmentTransaction =
              getFragmentManager().beginTransaction();
      fragmentTransaction.add(R.id.map, mMapFragment);
      fragmentTransaction.commit();

      View v = inflater.inflate(R.layout.afragment, container, false);

      setupMap();

        // Inflate the layout for this fragment
        return v;
    }

そして、次のようにマップをセットアップしました。

private void setupMap(){
         if (mMap == null) {
             mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
                                 .getMap();
             // Check if we were successful in obtaining the map.
             if (mMap != null) {
                //Set Location etc
                             ........

                mMap.getUiSettings().setAllGesturesEnabled(true);

                mMap.getUiSettings().setMyLocationButtonEnabled(true);
                mMap.getUiSettings().setZoomControlsEnabled(true);
                mMap.getUiSettings().setZoomGesturesEnabled(true);

              // Zoom in the Google Map
                mMap.animateCamera(CameraUpdateFactory.zoomTo(14));

                mMap.setOnMapClickListener(this);

             }
         }          
    }
4

2 に答える 2