studio screenorientation savedinstancestate rotate reiniciar ejemplo activity actividad android permissions tabs android-manifest android-orientation

screenorientation - Problema con el widget de pestañas cuando se usa android: configChanges="orientation | keyboardHidden" en la vista de cuadrícula pero que funciona para otra pestaña



protected void oncreate bundle savedinstancestate (1)

Estoy atascado con mi problema. Lo que pasa es que es un widget de pestañas personalizado. En eso tienen varias pestañas como Home - News - Abc - PQR .

La actividad debe ser para both orientation like portrait and landscape . entonces para eso cada pestaña tiene two xml para portrait que es store at layout-port/file.xml y landscape que se almacenan en layout-land/file.xml

Para administrar la orientación vertical a horizontal, agregué android:configChanges="orientation|keyboardHidden" etiqueta de regla en cada actividad.

  • TAB_SAMPLE.java Archivo de pestañas.
  • TAB_GROUP_ACTIVITY cada archivo de actividad de grupo de pestañas
  • file.java Archivo de tareas

Después de todo esto, tengo un problema aquí:

Si add android: configChanges = "orientation | keyboardHidden" rule tag in tab_sample actividad rule tag in tab_sample , entonces funciona perfectamente. como administrar diferentes vistas. puerto a tierra y tierra a puerto, pero no funciona en Home.java.

Ahora, si remove android:configChanges="orientation|keyboardHidden" rule tag in tab_sample actividad remove android:configChanges="orientation|keyboardHidden" rule tag in tab_sample , entonces funciona para la actividad de Home no para News.java

Significa cuando cambio la orientación manteniendo el mismo puerto de forma xml no usado desde layout-and.in el sentido de que vuelve a llamar a OnCreate ().

Así que, como he podido comprobar may be issue is in Tab Widget.

Actualizar

Ahora, después de rastrear mi código, veo que el problema principal está en la actividad de vista de cuadrícula porque es la única actividad que no funciona.

Issue is between Tab host v/s Grid View . No sé por qué no está tomando el archivo xml de layout-land. encontré esto como el mismo problema, pero no hay repetición en esa pregunta también

ver en detalle manifestfile.xml Quiero mantener tanto el retrato como el paisaje en toda la actividad.

Ambos archivos XML

Por favor, ayúdame a resolver esto.


Oooohhh Finalmente obtuve la solución para el problema anterior. Fue muy difícil.

Para mantener el estado de orientación Horizontal a vertical y viceversa, generalmente agregamos la etiqueta de propiedad android:configChanges="keyboardHidden|orientation" en actividad.

Pero aquí may be issue is Tab_Group_ Activity debido a que no puedo mantener el estado en GridView. Grid_File.java es el único archivo java que no manejaba el resto de orientación de todos los demás funcionando perfectamente.

Ahora bien, si remove android:configChanges="keyboardHidden|orientation" de TAB_SAMPLE.java entonces solo se trata de Grid_File.java .

mean that was keeping same Layout XML in landscape also where i have two separate XML File.

Aquí está mi solución:

He add android:configChanges="keyboardHidden|orientation" en TAB_SAMPLE.java , así como implement onConfigurationChanged(Configuration newConfig) y establecer el Número de columna de la grilla. como gridView.setNumColumns(6);

@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // gridView.setSelection(index); if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { // Log.e("On Config Change", "LANDSCAPE"); gridView.setNumColumns(6); } else { // Log.e("On Config Change", "PORTRAIT"); gridView.setNumColumns(4); } }

En general, estamos agregando la android:configChanges="keyboardHidden|orientation" en la actividad o implementing onConfigurationChanged(Configuration newConfig) pero aquí he escrito ambos.