2012-03-19 9 views
5

He intentado mantener la página cargada y los valores de javascript de un WebView en la orientación cambiar y pausar la actividad. Primero intenté sobreescribir configChanges, pero eso resultó en que mi GUI no se actualizara correctamente (tengo una barra deslizante que cambia de posición en el cambio de orientación). Después de eso intenté poner WebView en un fragmento y llamar a setRetainInstance (verdadero); Pero esto no mantiene intacto el contenido de WebView. Intenté mantener vivo el mismo objeto al no volver a crearlo, pero Android no permite que las vistas se reutilicen de esa manera.El contenido de Android Webview no debe perderse en el cambio de orientación, pero la GUI debe actualizarse correctamente

mi pregunta es: ¿hay alguna forma de mantener el contenido de la vista web sin tener que volver a cargarlo en cada cambio de orientación, mientras los otros componentes de la GUI se actualizan correctamente?

Espero que mi pregunta sea lo suficientemente clara, pero me complacería detallar si hay alguna falta de claridad.

EDIT: Ya he intentado añadir android: configChanges = "keyboardHidden | orientación" en mi manifiesto, que es lo que quería decir con "configchanges primordiales"

Parece que la única solución es actualizar todos javascript variables de nuevo en el cambio de orientación. Como todavía no he ejecutado grandes cantidades de actualizaciones a través de javascript, no puedo proporcionar mucha información sobre la velocidad y los recursos de esta operación.

Respuesta

0

Añadir esto en su archivo AndroidManifest ..... actividad

android:name=".YourActivityHere" 
android:configChanges="keyboardHidden|orientation" 
+0

Ya he intentado eso, eso es lo que quise decir anulando configChanges. Cuando implemente esto, mi GUI no se volverá a crear, y mi slidindrawer, por ejemplo, no se actualizará correctamente. – Wottah

0

probar este poner esto en el manifiesto

android:configChanges="orientation|keyboardHidden"></activity> 

esto en su clase

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
super.onConfigurationChanged(newConfig); 
} 
+0

Ya lo intenté, eso es lo que quise decir redefiniendo configChanges. Cuando implemente esto, mi GUI no se volverá a crear, y mi slidindrawer, por ejemplo, no se actualizará correctamente. – Wottah

0

Añadir debajo de la línea en el archivo Manifest de Android.

android:configChanges="keyboardHidden|orientation"

+0

Ya lo intenté, eso es lo que quise decir al sobreescribir configChanges. Cuando implemente esto, mi GUI no se volverá a crear, y mi slidindrawer, por ejemplo, no se actualizará correctamente. – Wottah

4

Sé que ya ha probado

android:configChanges="keyboardHidden|orientation" 

pero intenta esto en vez

android:configChanges="keyboardHidden|orientation|screenSize" 

En Android 3.2 y hasta "Tamaño de pantalla" cambia cuando se gira el cual hace que la vista web a recrear a sí mismo. vea la respuesta vinculada a continuación para obtener más información.

que consideran que esta respuesta aquí https://stackoverflow.com/a/11903546/655822

Cuestiones relacionadas