2011-02-07 15 views
1

ListActivityを使用してアイコン付きリストを表示しています(BaseAdapterのカスタム実装を使用しています)。データを適切にリロードしません。アダプタの内容を変更してリストに通知すると、スクロールイベントが発生するまで古いデータが新しいデータの上に描画されるように見えます。古い行は新しい行の上に描画されますが、スクロールを開始すると古い行は消えます。ListActivityリストがフルスクリーンで正しく更新されませんか?

ただし、ListActivityスタイルをTheme.Dialogに設定すると、細かくリフレッシュされます。 (ダイアログ内では、リストの内容が変更されるたびにアクティビティがリサイズされるため、全体ビューの再描画が強制されるからでしょうか?)

私のフルスクリーンアクティビティでこの作業を行う方法はありますか?

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

答えて

1

奇妙なことに、私が背景色を設定すると、すべてが正しくリフレッシュされます。背景色がなければ、元の記事で説明したリフレッシュの問題が発生します。

+0

は論理的です。背景色がある場合は、すべてを再描画する必要があります。透明性のある背景がある場合、問題が存在する可能性があります。色を目に見えないものに設定しようとしましたか? #00ffffff –

+0

背景なしで強制的に再描画する方法はありますか? – ab11

2

listViewでinvalidate()を呼び出そうとしましたか?

は、ここであなたが試みることができるいくつかの関数である:あなたの事がアイコン化されたときに(私はあなたがそれによって意味するものではありません正確に何)

invalidate() 
requestLayout() 
forceLayout() 

あなたもそれを行うことができ、。ビューのアダプターをヌルまたは空のアダプターに設定できます。あなたの活動が墜落しないように空のものがあります。 ListViewを表示したいときは、アダプタをそれに戻してください。

これは描画キャッシュにリンクされている可能性がありますが、もっと詳しい情報を教えていただければ幸いです。

+0

はい、私はinvalidate()とinvalidateViews()(どちらもuiスレッドから)を試みました。 – ab11

+0

onRestart()でlistviewの内容をクリアします。 notifyDataSetChaned()で試してみましたか? – Vivek

関連する問題