11

我在 Android 平台(版本 2.3.3 及更高版本)上将 PhoneGap 2.2.0 与 jQuery Mobile 1.2.0 结合使用。在页面上,我使用固定的标题,根本没有过渡。Rest 几乎是标准的 jQuery。

当我从一个页面导航到另一个页面时,我会短暂地闪烁一下(整个页面)。我在互联网上搜索了几个小时。

在下面尝试失败:

当我在 Android 项目中关闭硬件加速时,闪烁消失了。但是随后一些 CSS 样式出现问题,整体性能非常非常糟糕(显然)。

我现在也尝试了下面的代码。

ui.page {
-webkit-transform: translateZ(0);
-webkit-perspective:1000;
-webkit-backface-visibility: hidden;
}

可惜还是没有运气。

还尝试了这个:https ://github.com/watusi/jquery.mobile.simultaneous-transitions 在过渡前仍然短暂(全白页)闪烁。

它似乎与页面本身的动画转换无关,但是在卸载旧页面之后和加载新页面之前发生了一些奇怪的事情。

2013 年 4 月 25 日更新:也尝试过: https ://groups.google.com/forum/?fromgroups=#!topic/phonegap/EtZ2KwseKQ0 https://github.com/jquery/jquery-mobile/issues/4024 https ://github.com/jquery/jquery-mobile/pull/4129

唯一使闪烁消失的是删除固定标题部分。然后它像黄油一样光滑,但我错过了与面板兼容的标题。

还尝试了 1 页模板(一个文件中的所有页面)。也没有帮助。

jQuery Mobile 1.3.1 PhoneGap 2.5.0 Android 4+ 设备: - 谷歌三星 Galaxy Nexus - 三星 Galaxy Tab 10.1(有问题,但没有设备了) - 三星 Galaxy Note 10.1

我现在在 Github 上提交了一个问题:https ://github.com/jquery/jquery-mobile/issues/6031

4

5 回答 5

16

将视口设置为 user-scalable=no 为我解决了这个问题: 

改变

< meta name="viewport" content="width=device-width, initial-scale=1" />

< meta name="viewport" content="width=device-width, user-scalable=no" />
于 2013-05-22T13:20:46.960 回答
1

您帖子中的第三个链接是我在不久前遇到此问题时如何修复它。我还添加了 -webkit-perspective:1000; 闪烁是由于 3D 加速造成的,并且正在转换的页面的背面在几分之一秒内变得可见,使其看起来像闪烁。

编辑:查看内容以获取更多信息。

于 2013-02-08T16:43:04.440 回答
1

将视口设置为 user-scalable=no 为我解决了这个问题:

< meta name="viewport" content="width=device-width, user-scalable=no" />

适用于 Nexus 4 / Android 4.2.2 上的 jQuery Mobile 1.3.1 Cordova 2.8.0

于 2013-07-02T18:28:33.757 回答
0

确保此代码存在于您的mobileinit方法中:

//initialize jQM
$(document).on("mobileinit", function () {
  //hack to fix android page transition flicking issue
  if (navigator.userAgent.indexOf("Android") != -1){
      $.extend(  $.mobile , {
          defaultPageTransition: 'none'
      });   
    }
});

另外:更改以下内容jquerymobile.js

// Make our transition handler the public default.
$.mobile.defaultTransitionHandler = simultaneousHandler;

//transition handler dictionary for 3rd party transitions
$.mobile.transitionHandlers = {
    "default": $.mobile.defaultTransitionHandler,
    "sequential": sequentialHandler,
    "simultaneous": simultaneousHandler
};

也请让我知道您使用的是哪个安卓设备版本?

于 2013-05-08T06:25:13.903 回答
0

我尝试了几十种解决方案,但都没有奏效,形成我解决此闪烁的最佳方法是将 de autohidesplashscreen 属性设置为 false ,在上一页中显示启动画面并将其隐藏在设备准备好的目标页面中。在某些转换中,我们将转换睡眠约 0,5 - 1 秒,以避免闪烁屏幕闪烁。不是最好的解决方案,但对我们有用。

于 2013-10-25T05:40:38.557 回答