2013-11-14 53 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" .../> 

這將防止系統重新創建活動時,方向改變。