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).
- ¿Por qué utilizar sqlite Database en Android?
- Aplicación de Android que requiere archivos de datos grandes
- Android: Obtener la posición de desplazamiento de un WebView
- Impedir el cierre automático del portal en cautiverio después de la autenticación (Android)
- IBM Worklight - ¿Cómo habilito la depuración de WebView en Android?
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?
- Servicio llamado de Android a C # no funciona
- Android WebView: bloqueo tras la carga de url
- Envoltura de HTML en una aplicación para Android
- ¿Es posible cambiar el navegador / motor predeterminado para la vista Web de Android?
- Cómo autenticar servicio web sap con ksoap2
- Android WebView no sólo de vídeo audio
- ¿Cómo capturar una vista web a bitmap en Android?
- ¿Cómo se puede pasar JSON a AngularJS en la vista web de Android?