¿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); 

10 Solutions collect form web for “¿Cómo puedo acceder a getSupportFragmentManager () en un fragmento?”

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(); 
  • Guardar y restaurar el estado de la interfaz de usuario del fragmento cuando se empuja y sale del backstack
  • GetBackStackEntryCount () siempre devuelve 0 incluso después de agregar addToBackStack y executePendingTransactions ()
  • Android FragmentManager BackStackRecord.run lanzando NullPointerException
  • Cómo quitar la entrada anterior de la pila trasera de FragmentManager?
  • No se puede resolver el método 'show (android.support.v4.app.FragmentManager, java.lang.String)
  • OnViewCreated - lugar equivocado para reemplazar el fragmento?
  • Cómo establecer una etiqueta en un fragmento en Android
  • Android: remove () Fragmento -> add () nuevo Fragmento de la misma clase otra vez -> onCreateView y onActivityCreated no llamado?
  • Dónde llamar a getChildFragmentManager ()?
  • Android onBackStackChanged () no se llama
  • Problema de implementación de fragmentos Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.