¿Cómo puedo acceder a getSupportFragmentManager () en un fragmento?

Tengo una FragmentActivity y quiero usar un fragmento de mapa dentro de ella. Tengo un problema al obtener el administrador de fragmentos de soporte para acceder a él.

if (googleMap == null) { googleMap = ((SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map1)).getMap(); // check if map is created successfully or not if (googleMap == null) { Toast.makeText(getApplicationContext(), "Sorry! unable to create maps", Toast.LENGTH_SHORT) .show(); } } // create marker MarkerOptions marker = new MarkerOptions().position( new LatLng(latitude, longitude)).title("Hello Maps "); CameraPosition cameraPosition = new CameraPosition.Builder() .target(new LatLng(latitude, longitude)).zoom(15).build(); googleMap.animateCamera(CameraUpdateFactory .newCameraPosition(cameraPosition)); // adding marker googleMap.addMarker(marker); 

Puede llamar directamente

 getFragmentManager() 

Para obtener el gestor de fragmentos.

o

En su fragmento,

Crear campo:

 private FragmentActivity myContext; 

Override onAttach método de su fragmento:

 @Override public void onAttach(Activity activity) { myContext=(FragmentActivity) activity; super.onAttach(activity); } 

Cuando necesite obtener la llamada del gestor de fragmentos de soporte técnico:

 FragmentManager fragManager = myContext.getSupportFragmentManager(); //If using fragments from support v4 

o

 FragmentManager fragManager = myContext.getFragmentManager(); 

Estás listo.

Todo lo que necesitas hacer es usar

 getFragmentManager() 

Método en su fragmento. Se le dará el gestor de fragmentos de soporte, cuando lo utilizó al agregar este fragmento.

Fragmento de la documentación

Simplemente obtener de esta manera –

 getFragmentManager() // This will also give you the SupportFragmentManager or FragmentManager based on which Fragment class you have extended - android.support.v4.app.Fragment OR android.app.Fragment. 

O

 getActivity().getSupportFragmentManager(); 

En el método onActivityCreated () de su Fragmento y cualquier método que se esté llamando después de onActivityCreated ().

Puede utilizar getActivity().getSupportFragmentManager() cualquier momento que desee obtenerSupportFragmentManager.

La jerarquía es Actividad -> fragmento. Fragmento no es capaz de llamar directamente a getSupportFragmentManger pero Actividad puede. Por lo tanto, puede utilizar getActivity para llamar a la actividad actual en la que se encuentra el fragmento y get getSupportFragmentManager()

Si tiene este problema y está en api nivel 21 + hacer esto:

  mMap = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)) .getMap(); 

Esto obtendrá el mapa cuando se utiliza dentro de un fragmento.

Mi actividad principal extiende AppCompatActivity por lo que tuve que emitir mi contexto a AppCompatActivity en lugar de sólo Actividad.

p.ej.

 FragmentAddProduct fragmentAddProduct = FragmentAddProduct.newInstance(); FragmentTransaction fragmentTransaction = ((AppCompatActivity)mcontext).getSupportFragmentManager().beginTransaction(); 

Prueba esto:

 private SectionsPagerAdapter mSectionsPagerAdapter = new SectionsPagerAdapter(getActivity().getSupportFragmentManager()); 

Usted puede simplemente acceder como

 Context mContext; public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { mContext = getActivity(); } 

Y luego usar

 FragmentManager fm = ((FragmentActivity) mContext) .getSupportFragmentManager(); 

Haz esto en tu fragmento

 getActivity().getSupportFragmentManager() 

getSupportFragmentManager() utilizado cuando estás en actividad y quieres obtener un fragmento pero en el fragmento puedes acceder

 getSupportFragmentManager() 

getFragmentMangaer() uso de otro método llamado getFragmentMangaer() funciona igual que getSupportFragmentManager() y se puede utilizar como solía:

 fragmentTransaction =getFragmentManager().beginTransaction(); 
  • Asyncronious FragmentManager commit
  • Comprobando si el estado se ha guardado antes de comprometer un FragmentTransaction
  • ¿Qué hace exactamente FragmentManager y FragmentTransaction exactamente?
  • Sustitución de fragmentos en una actividad que no llama aAttach, onCreate, onCreateView, etc.
  • OnViewCreated - lugar equivocado para reemplazar el fragmento?
  • Android onBackStackChanged () no se llama
  • FragmentManager.getFragmens (). Size () no disminuyen después de FragmentTransaction.remove (Fragment)
  • Pop pila trasera sin onresume llamado
  • Android: Administrador de fragmentos se convierte en nulo
  • ¿Cómo aplastar fragmentos en el backstack que coinciden con su etiqueta de fragmento?
  • Fragmento que no llama onPause o onStop cuando se usa replace
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.