Retener completamente WebView en fragmento tras rotación
Actualmente tengo un WebView colocado en un fragmento como este:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRetainInstance(true); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mContext = container.getContext(); LayoutInflater mInflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); LinearLayout view = (LinearLayout) mInflater.inflate(R.layout.post_view_layout, container,false); view.setBackgroundColor(Color.WHITE); _viewCache = view; _post_WebView = (WebView) view.findViewById(R.id.post_webview); setupWebView(_post_WebView); //This method sets up the webview (javascript mode etc.) and set the url to load return view; }
Ahora, cada vez que giro, la actividad que contiene este fragmento se vuelve a crear (no puedo usar el configChanges="orientation"
para el manifiesto porque estoy usando ABS) Debido a setRetainInstance(true)
el fragmento, su diseño y todas las variables get retained fine and all, pero cada vez que intento desplazarme o hacer clic en el WebView retenido obtengo una BadTokenException
(probablemente porque la actividad original utilizada para su contexto se destruye durante la rotación).
- Eventos de desplazamiento de HTML en un WebView de Android que está dentro de un ScrollView
- Se esperaba BEGIN_OBJECT pero era BEGIN_ARRAY en la línea 1 columna 2 (edición pequeña)
- Android WebView: Imagen local grande no cargada / mostrada
- Restauración del estado de vista web que contiene HTML generado dinámicamente
- Android y su lenta webview. Hardware acelerado es buggy
Podría solucionar esto simplemente recreando el WebView con el nuevo contexto de actividad después de la rotación, pero como la webview muestra un formulario de entrada, volver a crearlo después de la rotación puede resultar tedioso para los usuarios. (Ya intenté guardar el estado utilizando los métodos saveState
y restoreState
de la WebView, pero sin éxito)
¿Hay alguna manera de restaurar o conservar el WebView en su estado de pre-rotación completa sin generar una BadTokenException
, al igual que lo haría cuando el configChanges="orientation"
se ha agregado?
- Manejo de la rotación de la pantalla en WebView
- Cómo editar HTML / CSS / Javascript en Eclipse ADT
- Error en Callin Java webservice de Android usando k-Soap
- ¿Cómo se puede pasar JSON a AngularJS en la vista web de Android?
- Ampliar / reducir en webview android
- Guardar el estado de WebView y restaurar en ANDROID
- Cookies HTTP WebView HTTP no funcionan en la API 21
- Cuadro de texto oculto debajo del teclado en la vista web de Android