Marc Reicheltの作業に基づいたRealViewSwitcherを、ListAdapterでバックアップされたものに変換しようとしています。一度に1つずつ表示される、複数のビューを含む、水平方向にスクロール可能なViewGroup。
私の現在のソリューションでは、一度に最大3つのビューをViewGroupに追加します。1つ(中央)が表示され、2つのバッファリングされたビューが両側に1つずつあります。ユーザーが右にスクロールすると、一番左のビューが削除され、新しいビューが右に追加されます。ViewGroupを左右両方にスクロールできるようにするには、常に中央のビューに焦点を合わせる必要があります。そのため、ビューを切り替えるときは、ビューを正しく配置し、中央のビューにフォーカスを設定します。このアプローチの問題は、ビューが配置されたときにちらつき効果が発生することです。私が描いた絵で問題を説明しましょう:
A、B、Cは私のViewGroupの3つの異なるビューです(ViewGroupをバックアップするListAdapterにはさらに多くの要素が含まれていますが、一度に読み込まれるのは3つだけです)。大きい方の長方形は、現在フォーカスがある場所を表しています。左にスクロールし、(3)で、一番左のビューである目的地にスナップします。次に、ビューを再配置します。つまり、左側に新しいビューXを追加し、右側にビューCを削除して、Aを中央に配置します。最後に、最初からスクロールした中央のビュー(A)を中心に配置します。
したがって、ビューの最後の再配置を実行し、中央のAを中心にすると、以前は中央にあったビュー(この場合はB)のコンテンツが数ミリ秒点滅し、予期しないちらつき効果が発生します。 。どうすればそれを回避できるかについてのアイデアはありますか?