1

ウェブビューで表示と非表示を許可すると、画面をタッチすると常に画面上で断片化されたままになります。たとえば、ボタンをクリックするとdivが表示されますが、divは完全には表示されず、半分しか表示されません。画面をタッチすると左側が表示されます。次に、ボタンをクリックしてこのdivを非表示にすると、完全に非表示になるのではなく、一部のみが非表示になり、画面に触れるまで画面に残り、左側が消えます。

1. I use jquery show() and hide() method to show and hide the div
2. I have enabled hardware accelerate
3. I have set webview render priority as HIGH.

would you please give me some suggestions, thank you.

実際、これはこのリンクからの投稿です、私はちょうど同じ問題に遭遇しました。

私のプロジェクトでは、2つのボタンを含むdivを取得しました。また、特定の状況ではdivを表示/非表示にする必要があります。具体的には、固定位置を使用して、フッターのようにブラウザの下部にdivを固定します。これがdivのcssです。

[id^="btns_div"]{
position: fixed;
bottom: 5px;
left: 10px;
z-index: 3;
background-color:#eeeeff;
width: 90%;
height: 10%;
font-size:20px;
display: none;
}

このレンダリングの問題を回避するために、さまざまなメカニズムを試しました。この問題は、css:bottomが割り当てられている場合にのみ発生することがわかりました。それがなければ、レンダリングの問題はありませんが、位置が間違っています。

任意の提案をいただければ幸いです。

4

1 に答える 1

2

私の経験では、DOMで動作するページのWebビューでの完全なハードウェアアクセラレーションは、現時点で何百万もの問題を引き起こします。考えられる根本原因を見つけるために多くのテストを行いましたが、Google/Chromiumが機能しない場合にできることはほとんどないようです。

ハードウェアアクセラレーションにより、「ディスプレイリスト」を使用して画面がまったく異なる方法でレンダリングされます。非常に安価な履歴書として、この手法には何千もの利点がありますが、予期しない更新の検出はあまり得意ではないため、ユーザーはこれを念頭に置いてレンダリングを「無効化」する必要があります。

これは、アクションが存在する場所でプログラミングしているため、Javaアプリには最適ですが、Webビューを挿入すると、状況が複雑になり始めます。詳細な説明については、ディスプレイリストをグーグルで検索してください。これらのことが起こる理由を理解することは本当に価値があります。

したがって、私の経験では、Webビューのハードアクセラレーションを常に無効にする必要があります。時々、新しいAndroidバージョンなどを試しますが、状況はまったく改善されません。

誰かもっと良いニュースがあれば教えてください!乾杯。

于 2013-02-13T21:28:56.763 に答える