8

ビューのリサイクルを使用して、ロジックを再作成ListView(および)しようとしています。AbsListViewこれが必要ですが、これは Android のロジックを理解するためだけのものであると言えます。

固定高さを使用して、私の子アイテムが同じ(同じレイアウト)であるとしますRelativeLayout

スクロール中に、ゴーストの子ビューを再利用し、現在のアイテムのプロパティを設定しています。最適化のためにスクロール中にレイアウトを要求する代わりにView.offsetTopAndBottom()andを使用しているため、正常に動作しています。invalidate()

私の問題は、子( )を更新することRelativeLayoutです。

アイテムによっては、このアイテムを非表示または表示したいImageView。そのために、私は and を使用iconImage.setVisibility( GONE )してiconImage.setVisibility( VISIBLE )います。

をブロックrequestLayoutしているため、setVisibility()正常に動作していないようです。

を使用するrequestLayoutと、すべてのツリーがそれ自体を測定してレイアウトし、スクロールするユーザー エクスペリエンスには適していません。

リサイクル子アイテムのレイアウトのみをリクエストする方法はありますか?

4

1 に答える 1

-2

ビューの変更を listView に通知する必要があるため、次のnotifyDataSetChanged();ように Uithread から呼び出します。

        final ArrayAdapter adapter = ((ArrayAdapter) getListAdapter());
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            adapter.notifyDataSetChanged();
        }
    });
于 2013-09-12T10:08:31.110 に答える