7

フラグメントで構成される ViewPager (AbstractBrowsePagerAdapter に基づく) があります。各フラグメントは、SwipeRefreshLayout をルートとしてレイアウトをインフレートします。最近、support-v4:21.0.0 ライブラリに更新しました。新しい SwipeRefreshLayout は、下のスクリーンショットに示すように、線形の垂直プログレス バーの代わりに円形のプログレス バーを使用します。

プルして更新し、右にスワイプし、ViewPager でプルして更新したインデックスと同じインデックスに新しいフラグメントを作成し、その新しいフラグメントに移動すると、以前のビューが新しいコンテンツの上に表示されます。

新しい SwipeRefreshLayout のバグ

スクリーンショットでわかるように、「空のディレクトリ」テキストビューと「サークル プログレスバー」は、破棄された前のフラグメントからまだ表示されています。

  1. これは、SwipeRefreshLayout がロード中の状態 (ローダーが画面に表示されている) の場合にのみ発生します。
  2. これは、以前のバージョンの SwipeRefreshLayout では発生しません。
  3. バグが発生すると、hierarchyviewer ツールが機能しません。以前は機能していましたが、アプリケーションを再起動すると機能しますが、バグが発生した状態では機能しません。
  4. ビューを DDMS でダンプすると、前のフラグメントのビューが表示されません。

これは新しい SwipeRefreshLayout のバグのようですが、同じ問題を抱えている人を見つけることができず、https://code.google.com/p/android/issues/list?can= で報告されていないようです1&q=SwipeRefreshLayout&colspec=ID+Type+Status+Owner+Summary+Stars&cells=タイル

以前のフラグメントからのビューを完全に削除することを強制する回避策を探しています。

4

1 に答える 1