【问题标题】:webview backstack lost after screen rotation, back button history of pages, Android屏幕旋转后webview backstack丢失,页面的后退按钮历史记录,Android
【发布时间】:2013-04-05 07:16:33
【问题描述】:

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

但是,当我将 Android 平板电脑从一个方向旋转到另一个方向时。就像从肖像到风景一样,这段历史消失了。我通过 savedInstanceState 将 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

【问题讨论】:

    标签: android webview history screen-orientation back-stack


    【解决方案1】:

    我找到了答案。 RTFM 的一个案例。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 2010-11-11
      • 2021-07-15
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      相关资源
      最近更新 更多