Android 无法对supportMapFragment执行操作

Android 无法对supportMapFragment执行操作,android,google-maps,android-viewpager,google-maps-markers,supportmapfragment,Android,Google Maps,Android Viewpager,Google Maps Markers,Supportmapfragment,我为此苦苦挣扎了几个小时,所以我最终决定需要一些帮助 我在一个ViewPager中有一个SupportMapFragment(Google Map v2),ViewPager本身在一个TabFragment中。这不是一个美丽的景象,但它不是一个用于发布的应用程序。它更像是我正在开发的未来应用程序的概念证明 所以,结构看起来像这样: 主要活动: 表1 表1视图页面片段1 com.google.android.gms.maps.GoogleMap@476b528 (for example) M

我为此苦苦挣扎了几个小时,所以我最终决定需要一些帮助

我在一个ViewPager中有一个SupportMapFragment(Google Map v2),ViewPager本身在一个TabFragment中。这不是一个美丽的景象,但它不是一个用于发布的应用程序。它更像是我正在开发的未来应用程序的概念证明

所以,结构看起来像这样:

主要活动:

  • 表1
    • 表1视图页面片段1
      com.google.android.gms.maps.GoogleMap@476b528 (for example)
      
      Marker marker = mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)));
      
      @Override
      public void onViewCreated(View view, Bundle savedInstanceState) {
          Log.d(TAG, "onViewCreated");
          SupportMapFragment supportMapFragment = 
                               (SupportMapFragment) GameFragment.mGamePagerAdapter.getRegisteredFragment(0);
      
          if (supportMapFragment == null) {
              Log.d(TAG, "onViewCreated > supportMapFragment == null");
              mMap = null;
          } else {
              Log.d(TAG, "onViewCreated > supportMapFragment != null > supportMapFragmentToString: " + supportMapFragment.toString());
              mMap = supportMapFragment.getMap();
          }
      
      
          if (mMap == null) {
              Log.d(TAG, "onViewCreated > mMap == null");
          } else {
              Log.d(TAG, "onViewCreated > mMap != null > mMap: " + mMap.toString());
      
              if (savedInstanceState == null) {
                  Log.d(TAG, "onViewCreated > savedInstanceState == null");
      
                  CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(51.2, 4.5));
                  CameraUpdate zoom = CameraUpdateFactory.zoomTo(15);
      
                  mMap.moveCamera(center);
                  mMap.animateCamera(zoom);
                  mMap.getUiSettings().setZoomControlsEnabled(false);
      
                  Marker marker = mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)));
                  if (marker == null) {
                      Log.d(TAG, "onViewCreated > savedInstanceState == null > marker == null");
                  } else {
                      Log.d(TAG, "onViewCreated > savedInstanceState == null > marker != null");
                      LatLng location = marker.getPosition();
                      Log.d(TAG, "onViewCreated > savedInstanceState == null > marker != null > MarkerToString: " + marker.toString());
                      Log.d(TAG, "onViewCreated > savedInstanceState == null > marker != null > Marker Latidude: " + location.latitude);
                      Log.d(TAG, "onViewCreated > savedInstanceState == null > marker != null > Marker Longitude: " + location.longitude);
                      Log.d(TAG, "onViewCreated > savedInstanceState == null > marker != null > Camera Position: " + mMap.getCameraPosition().toString());
                  }
              }
      
          }
          super.onViewCreated(view, savedInstanceState);
      }
      
      public Fragment getRegisteredFragment (int position) {
          return registeredFragments.get(position);
      }
      
      @Override
      public Object instantiateItem(ViewGroup container, int position) {
          Fragment fragment = (Fragment) super.instantiateItem(container, position);
          registeredFragments.put(position, fragment);
          return fragment;        
      }