簡體   English   中英

在Android 2.1中更改方向期間保存WebView滾動位置時出現問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM