2013-04-05 94 views
0

我在活動中有一個WebView,它在一個屏幕方向上工作得很好。我可以導航到網站上的不同頁面,當我點擊後退按鈕時,它會返回到之前訪問過的前幾頁,但是,當我將Android平板電腦從一個方向旋轉到另一個方向時。如從肖像到風景,這段歷史已經失傳。我通過savedInstanceState將WebView當前所在的URL傳遞給下一個方向。webview backstack在屏幕旋轉後丟失,頁面的後退按鈕歷史記錄,Android

屏幕旋轉後,新創建的WeView按預期打開頁面到URL。當我按下後退按鈕時,它不會去任何地方。

我該如何解決這個問題?

這裏是我的一些代碼,它是我處理後退按鈕的部分。

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 

if (keyCode == KeyEvent.KEYCODE_BACK){ 

    if (pageView.canGoBack()){ 

     if((coverImage.getVisibility())==(View.VISIBLE)){ 
      setYouTubeScreenDecor(false); 

      FragmentManager fragmentManager = getFragmentManager(); 
      FragmentTransaction fragmentTransaction = 
      fragmentManager.beginTransaction(); 
      fragmentTransaction.hide(youTubePlayerFragment); 
      fragmentTransaction.commit(); 
      if(playerVision!=null){ 
       playerVision.pause(); 
      } 

     return true; 

    } // end if 
     else { 
      pageView.goBack(); 

     return false; 

     } // end else 

    } // end if pageview.canGoBack 

    } // event keycode 

    return true; 

} // end if keyCode == KeyEvent.KEYCODE_BACK 

回答

0

我找到了答案。一個RTFM的例子。

WebBackForwardList restoreState(Bundle inState) 從給定的Bundle中還原此WebView的狀態。

WebBackForwardList saveState(Bundle outState) 保存onSaveInstanceState(Bundle)中使用的此WebView的狀態。