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.
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.