2013-11-14 27 views
0

我想避免webview重新呈现方向变化的网页。避免webview重新呈现方向变化的网页[Android]

我的活动是固定方向的肖像,但在一个按钮上单击我将更改活动的方向为风景和肖像。

当我更改活动的方向时,我的Web视图花费时间来渲染/刷新页面。我的Web视图呈现的网页是本地的,并且仍然需要时间(大约2-4秒)来显示页面的内容,并且在过渡时间内看到空白的白色屏幕。

我试图通过调用以下功能来保存Web视图的状态:

// Before switching calling 
Bundle webViewState; 
webViewState = new Bundle(); 
Webview.saveState(webViewState); 

// When switching done then calling. 
Webview.restoreState(webViewState); 

但由于在Android SDK文档提到的,我们需要在onSaveInstanceState和活动周期的onRestoreInstanceState调用这些功能,所以我我在这种情况下会崩溃,因为我没有从活动周期中调用这些函数。

有没有人有解决方法/修复这种情况。

UPDATE: 在我的应用我使用一套取向,所以我不能够使用onSaveInstanceStateonRestoreInstanceState,当我们有固定的方向,这些功能都没有得到调用。

回答

0

我想你应该有在本节文档看看:Handling the Configuration Change Yourself

+0

事情是,我的活动是有固定的方向肖像,因为当我调用'setOrientation'那么我的'onConfigurationChange'没有得到调用。所以我不能使用这种方法。无论如何,我可以保持方向为固定并获得onConfigurationChange事件..我不认为有任何方法。 – User7723337

+0

我想你需要分享你用来重新定位视图的代码。每个人都会假设你正在谈论自动系统重新定向,这会破坏和重新创建活动,并想知道为什么你不能从生命周期方法中调用这些方法。 – Tenfour04

+0

我已添加有关此更新,请参阅我更新的问题。 – User7723337

1

页面进行重新渲染,因为你的活动被破坏并重新创建的方向变化。更新您的活动清单:

<activity android:name="..." 
    android:configChanges="orientation|screenSize" .../> 

这将防止系统重新创建活动时,方向改变。