Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Fragmentos desaparecen cuando se rotan

He añadido los fragmentos con java.

Cuando abro la aplicación en modo retrato funciona.

ScrrenShot

Si girar el fragmento sólo desaparecen.

Introduzca aquí la descripción de la imagen

Pero si cierro la aplicación, a continuación, rotar el teléfono y, a continuación, abra la aplicación de nuevo, funciona.

Introduzca aquí la descripción de la imagen

Tengo dos diseños diferentes uno para el modo de retrato otro para el modo de paisaje, ambos con el mismo nombre, tengo el diseño para el retrato en la carpeta "diseño", y el diseño de paisaje en la carpeta "layout-land".

Parece que estoy olvidando algo, sinceramente soy nuevo en el desarrollo de Android.

Actividad:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ListFragment frag = new ListFragment(); setContentView(R.layout.layout_main); FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.add(R.id.LIST_LAYOUT,frag,"LIST"); transaction.commit(); } 

Fragmento :

 public class ListFragment extends Fragment implements AdapterView.OnItemClickListener{ ListView List; Communicator communicator; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //return super.onCreateView(inflater, container, savedInstanceState); return inflater.inflate(R.layout.mlistfragment,container,false); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); communicator = (Communicator) getActivity(); List = (ListView) getActivity().findViewById(R.id.listView); ArrayAdapter adapter = ArrayAdapter.createFromResource(getActivity(),R.array.StrListButtons,android.R.layout.simple_list_item_1); List.setAdapter(adapter); List.setOnItemClickListener(this); } 

4 Solutions collect form web for “Fragmentos desaparecen cuando se rotan”

De hecho, no es necesario agregar el Fragment cada vez que se crea la Activity ; El FragmentManager mantiene automáticamente. Debe envolver el código que hace la FragmentTransaction en una if (savedInstanceState == null) , de modo que sólo se ejecute la primera vez que se cree la Activity . Por ejemplo:

 if (savedInstanceState == null) { getFragmentManager().beginTransaction() .add(R.id.list_layout, new ListFragment(), "LIST") .commit(); } 

Una actividad se suele recrear después del cambio de orientación. Puede intentar usar el método onSaveInstanceState () para conservar los datos.

Consulte este enlace para obtener más detalles.

http://developer.android.com/guide/components/activities.html#ConfigurationChanges

Hola hola podría intentar implementar onResume () y llamar a este bloque de código de allí

  FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.add(R.id.LIST_LAYOUT,frag,"LIST"); transaction.commit(); 

También sobrescribir onsaveinstancestate ()

Intente utilizar setRetainInstance (true); En el método onCreate de su fragmento.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.