Make sure that you are in your Activity
inflating its Fragment
dynamically.
Note: You cannot inflate a layout into a fragment when that layout
includes a . Nested fragments are only supported when added
to a fragment dynamically.
For instance:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragment);
if(fragment == null){
MainActivityFragment mMainActivityFragment = new MainActivityFragment();
fm.beginTransaction()
.replace(R.id.fragment, mMainActivityFragment, "MainActivityFragment")
.commit();
}
}
}
R.layout.activity_main
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
MainActivityFragment
public class MainActivityFragment extends Fragment {
private SupportMapFragment supportMapFragment;
private GoogleMap mGoogleMap = null;
public MainActivityFragment() {
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
FragmentManager fm = getChildFragmentManager();
supportMapFragment = (SupportMapFragment) fm.findFragmentById(R.id.container_map);
if (supportMapFragment == null) {
supportMapFragment = SupportMapFragment.newInstance();
fm.beginTransaction().replace(R.id.container_map, supportMapFragment).commit();
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View mRoot = inflater.inflate(R.layout.fragment_main, container, false);
return mRoot;
}
@Override
public void onResume() {
createMapView();
super.onResume();
}
private void createMapView() {
mGoogleMap = supportMapFragment.getMap();
if (mGoogleMap != null) {
mGoogleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
return false;
}
});
}
}
}
R.layout.fragment_main
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container_map"
android:layout_width="match_parent"
android:layout_height="match_parent"/>