[英]Problem saving WebView scroll position during orientation change in Android 2.1
我在保留方向更改期間保留加載到Android WebView控件中的內容的當前滾動位置時遇到問題。 當前僅在Android 2.1和Android 2.1 Update 1中存在此問題
我使用的代碼基於默認的瀏覽器應用程序,如下所示:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mWebView = new WebView(this);
setContentView(mWebView);
mWebView.setWebViewClient(mWebViewClient);
if (savedInstanceState != null)
{
final WebBackForwardList list = mWebView.restoreState(savedInstanceState);
if (list == null)
return;
if (savedInstanceState.containsKey("currentPicture"))
{
final File f = new File(savedInstanceState.getString("currentPicture"));
mWebView.restorePicture(savedInstanceState, f);
f.delete();
}
}else
mWebView.loadUrl("http://slashdot.org/");
}
@Override
protected void onSaveInstanceState(Bundle outState)
{
final WebBackForwardList list = mWebView.saveState(outState);
File mThumbnailDir = getDir("thumbnails", 0);
if (list != null)
{
final File f = new File(mThumbnailDir, mWebView.hashCode() + "_pic.save");
if (mWebView.savePicture(outState, f))
outState.putString("currentPicture", f.getPath());
}
}
該代碼可在Android 1.5、1.6和2.0.1中使用。 在Android 2.1中,相同的代碼將位置恢復了一秒鍾,但隨后頁面重新加載並滾動到位置0,0。
在Android 2.1 Update 1中,它不僅會回滾至0,0,而且還會更改“縮放”以適合頁面寬度(類似於2.1中引入的瀏覽器“概述”模式)
有誰知道解決方法或有什么想法會導致這種行為?
只需在onRestoreInstanceState中加載WebViewState。
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
myWebView.restoreState(savedInstanceState);
}
將方向從橫向更改為縱向或反之亦然,它將啟動新的活動。 因此,您將打開為刷新活動。 將代碼放入您的AndroidManifest.xml中,然后重新加載應用程序。
"activity android:name=".Main
android:configChanges="orientation"
在活動標簽中。 謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.