1

オフトピック: お時間をいただきありがとうございます。私の英語で申し訳ありません。

問題は、スワイプ時のラグViewPagerです。

使用される構成は、TabHostタブ (およびダミー コンテンツ) を使用ViewPagerし、4 つのフラグメントを使用FragmentPagerAdapterしてそれを管理します。

4 つのフラグメントすべてにリストがあり、レイアウト内に他のウィジェットがあるものもあります。問題は 2 つのフラグメント、またはそれらのフラグメントの 2 つのリストが非常に重いことです。リスト項目にはLinearLayoutCursorAdapter. ここに大きな問題があることはわかっていますが、運がなければ、この「パーセンテージ幅」リスト項目にアプローチするのに小さな頭が苦労しました。

しかし、いくつかのログの後、スワイプするたびに 3 つのマネージド フラグメントが「無効化」されていることがわかりました。私が見ているのは、すべてのリストがアイテムを何度も(何度も)バインドしているため、「無効」を意味します。また、2 つの重いリストを含む 3 つのリストを再描画するため、遅延が発生します。

私のコードの指摘すべき2つのこと:私はカーソルローダーを使用しています. オンFragmentPagerAdapter.onPageSelected現在のタブのみを更新しています。

(3) を設定ViewPager.setOffScreenPageLimitして 4 つのフラグメントを存続させると、事態はさらに悪化します。フラグメント 3 から 4 にスワイプしても、最初のフラグメントのリストが再レンダリングされます。

私の回避策は、を使用してonPageSelected、現在のリスト ビューの可視性を Visible に設定し、他のビューを非表示に設定することです。これらのアプローチにより、ラグはなくなります (95% としましょう) が、作成される前に空のリスト ビューをスクロールするとわかります。

ある時点で間違っている場合は、重要なアイデアを見逃している可能性があります。誰かが可能な解決策を持っている場合、おそらくそれらのレクリエーションを回避するか(方法はわかりません)、または他の人が同じようになっている場合、それを解決するために何もすることはありません.

ソースを調べてみViewPagerますが、ファイルを開いたところです woouu.. この問題でテストプロジェクトを取得しようとします。

どうもありがとうございました。

4

0 に答える 0