14

ListActivity では、一度に 20 項目だけを表示したいので、ヘッダー ビューとフッター ビュー (リストの上部と下部) をリストの前のページ ボタンと次のページ ボタンとしてそれぞれ使用する必要があります。

次のようにして、ヘッダー ビューとフット ビューを設定します。

getListView().addHeaderView(myHeaderView);
getListView().addFooterView(myFooterView);
setListAdapter(adapter);

これは正常に機能しますが、リストの一部のページには次のページ ボタンまたは前のページ ボタンがない可能性があるため、これらのヘッダー ビューとフッター ビューを動的に削除および追加する必要があります。

問題は、setListAdapter を呼び出した後、addHeaderView または addFooterView を呼び出せないことです。

これを回避する方法はありますか?

4

3 に答える 3

10

ヘッダーとフッターを高さゼロに折りたたんだり、ボタンをグレー表示したりしないでください (さらに良い方法です)。

私の意見では、最高のユーザー エクスペリエンスは、組み込みの Gmail アプリのように、必要に応じて (つまり、スクロール時に) より多くの項目を動的に読み込むことです。

于 2010-01-07T01:47:34.933 に答える
3

はい、これはListViewコンポーネントのバグまたは見落としです。固定リスト アイテムの追加と削除を処理する独自のリストを作成することで、この問題を回避できますがWrapperListAdapter、これは簡単なことではありません。

または、はるかに簡単にListView、次へボタンと前へボタンを配置する場所の上または下に固定コンポーネントを追加することもできます。

于 2010-01-07T01:48:25.150 に答える
2

次のように、ヘッダー ビューを追加する必要があるたびにアダプターをリセットしてはどうでしょうか。

ListView.FixedViewInfo headerInfo = getListView().new FixedViewInfo();
headerInfo.isSelectable=false ;
headerInfo.view = feedInfoView;
headerInfos.add(headerInfo);
headerViewListAdapter = new HeaderViewListAdapter(headerInfos,null,adapter);
getListView().setAdapter(headerViewListAdapter);
于 2010-06-29T10:01:51.457 に答える