1

listview我在 Android 模拟器(jQuery Mobile + PhoneGap,Android 4)中看到以下内容:

在此处输入图像描述

首次显示页面时,列表按预期显示,但随后内容立即隐藏。触摸显示屏几次更新为:

在此处输入图像描述

该列表本身并没有什么不寻常的,即:

<div data-role="page" class="type-home" id="dine-around-list" data-add-back-btn="true">
    <div data-role="header" data-position="fixed" data-theme="e">
        <h1>Venue</h1>
    </div>
    <div data-role="content" class="content">
        <h3>Restaurants</h3>
        <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="b">
            <li><a href="#dinearound1">EDGE Restaurant at The Four Seasons Denver</a></li>
            <li><a href="#dinearound3">The Ninth Door</a></li>
            <li><a href="#dinearound4">Bistro Vend&#244;me</a></li>
            <li><a href="#dinearound5">JAX Fish House &amp; Oyster Bar</a></li>
            <li><a href="#dinearound6">Venice Ristorante &amp; Wine Bar</a></li>
            <li><a href="#dinearound7">The Kitchen</a></li>
            <li><a href="#dinearound8">Capital Grille</a></li>
            <li><a href="#dinearound9">ChoLon</a></li>
            <li><a href="#dinearound10">Prima Ristorante</a></li>
            <li><a href="#dinearound11">Osteria Marco</a></li>
        </ul>
    </div>
</div>

知道为什么会发生这种情况吗?我只在 Android Emulator 中的 Android 4 上看到过这个,在任何其他 Android 版本上都没有。

更新:一般建议是在清单中激活硬件加速,即:

<application android:icon="@drawable/icon" 
             android:label="@string/app_name" 
             android:hardwareAccelerated="true" >

您也可以在代码中执行此操作,即:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH ){
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
}

不过没什么区别。

4

1 回答 1

1

奇怪的是,从应用程序中使用的自定义 CSS 中删除以下内容解决了这个问题:

.ui-page { -webkit-backface-visibility: hidden; }

之前添加此行是为了消除 Android 页面转换期间的闪烁(最终通过指定$.mobile.defaultPageTransition = 'none';和使用它来解决)。

这是一个奇怪的问题 - 解决方案似乎与问题无关。

于 2012-05-02T17:57:02.270 回答