0

我在 Activity 中有一个 WebView,它在一个屏幕方向上效果很好。我可以导航到网站上的不同页面,当我点击后退按钮时,它会回到我之前访问过的上一个页面,

但是,当我将 Android 平板电脑从一个方向旋转到另一个方向时。就像从肖像到风景一样,这段历史消失了。我通过 saveInstanceState 将 WebView 当前所在的 URL 传递到下一个方向。

屏幕旋转后,新创建的 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
4

1 回答 1

0

我找到了答案。以 RTFM 为例。

WebBackForwardList restoreState(Bundle inState) 从给定的 Bundle 中恢复此 WebView 的状态。

WebBackForwardList saveState(Bundle outState) 保存在 onSaveInstanceState(Bundle) 中使用的此 WebView 的状态。

于 2013-04-05T07:29:15.760 回答