-1

リストビュー内でフッターを追加/削除して配置する利点は何ですか? ListView の下の領域に表示する方がよいのではないでしょうか? フッターを動的に追加/削除すると、エラーが発生する可能性があります。さらに、追加すると (間違っている場合は訂正してください)、フッターを追加するたびにアダプターをリセットする必要があることがわかります。

これは、フッタービューをリストビューに追加するために最終的に使用する方法です。これは、追加/削除のものを示しています。

  private void addFooterView(ListView listView, View footerView)
{
    if ((listView != null) && (footerView != null))
    {
        listView.removeFooterView(footerView);
        listView.addFooterView(footerView);
        if (listView.getAdapter() != null)
        {

           listView.setAdapter(mInTheatersMostPopularAdapter);
        }
    }

}
4

1 に答える 1

1

リスト ビューに既にアダプターがある場合、ヘッダーまたはフッター ビュー (「固定」ビュー) を追加しようとすると、例外がスローされます (不正な状態だと思います)。これは、アダプターを設定するときにリストに固定ビューがある場合、アダプターが HeaderViewListAdapter にラップされるためです。

リスト ビューのフッターを動的に変更する場合は、現在のアダプターを無効にして固定ビューを追加し、アダプターをリセットする必要があります。アダプターへの参照がない場合は、リストビューから取得できますが、それが HeaderViewListAdapter であるかどうかを確認してください。そうである場合は、getWrappedAdapter を呼び出し、setAdapter(null)、addFooterView(footer)、setAdapter(oldAdapterHere) の順にローカル変数として保持します。

アダプターに電力を供給し、さまざまなビューの種類を処理するデータを操作することで、ヘッダーとフッターをシミュレートできます。ヘッダー ビューとフッター ビューは、画面のオンとオフをスクロールしてもリサイクルされないため、パフォーマンスに関する考慮事項があります。これらは常に完全なメモリを占有しますが、毎回再読み込み、レイアウト、膨張などを行うわけではありません。

于 2012-08-18T00:34:00.637 に答える