【问题标题】:WebView - Everytime I rotate the screen the site goes back to the original page?WebView - 每次我旋转屏幕时,网站都会返回原始页面?
【发布时间】:2012-08-23 20:36:08
【问题描述】:

有没有办法阻止这种情况?我尝试了以下方法:

//Adding this to the Manifest for the activity:
android:configChanges="orientation"

//Adding this to the MainActivity
@Override
    public void onConfigurationChanged(Configuration newConfig){        
        super.onConfigurationChanged(newConfig);
    }

虽然没用,有什么想法吗?

【问题讨论】:

  • 我还没有听说过PhoneGap...我需要为它重写我当前的系统吗?这就是为什么我只想展示一个网站 - 不需要重新编程!
  • 我对您当前的系统一无所知。您能否提供有关您正在尝试做的事情以及正在发生的事情的更多详细信息?
  • 好吧,我的问题仍然存在 - 如何停止网站自动加载初始页面而不是旋转它所在的页面? :p
  • 蒂姆,你在说什么“初始页面”?你描述的不是很详细。它是一个网络应用程序吗?是否导航到新的 URL?
  • 它是一个显示在 WebView 中的网站。

标签: java android webview


【解决方案1】:

这只是一个建议,但你可以试试 :-)

  android:configChanges="keyboardHidden|orientation"

我使用它,但不与 webview 结合使用。但是,在我使用我的活动进行测试的每一种情况下,它都会停止构建新的活动。

【讨论】:

    【解决方案2】:

    方向改变实际上重新启动了整个活动。 这意味着 onDestroy() 被调用,然后 onCreate() 被再次调用...

    这是设计使然,因为activity最终会需要加载不同的布局、不同的配置等等……

    您应该使用 onSaveInstanceState() 方法保存活动状态,并重用作为参数传递给 onCreate() 方法的 Bundle 对象。

    阅读http://developer.android.com/guide/topics/resources/runtime-changes.html,它解释了所有这些过程(以及可选的附加优化)

    【讨论】:

    • 如何编码?作为基于屏幕是否旋转的 if 语句?
    • 嗯,不。您应该在 onSaveInstaceState() 方法中的 Bundle 对象中存储有关上下文的任何有用信息。那么你的onCreate() 方法必须使用这些信息来构建你屏幕的先前状态
    • 但是如何保存 Bundle(如 onSaveInstanceState() 的调用方式和时间)?
    • 您只需将信息存储在 Bundle 对象中,使用该方法,系统会完成剩下的工作。请参阅stackoverflow.com/questions/151777/… 的实现示例。
    • 好的 - 我知道如何做到这一点 - 但是如何保留网页? onSaveInstanceState.put……?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 2020-08-22
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多