1. ホーム
  2. android

ListViewのフッタービューを隠す?

2023-09-24 14:14:49

質問

私は ListView . その背後にあるデータはインターネットから取得され、ユーザーが下までスクロールするたびに10~30個のアイテムがセットで表示されます。より多くの項目をロードしていることを示すために、私は addFooterView() を使用して、"Loading..." メッセージとスピナーを表示するシンプルなビューを追加します。さて、データがなくなった(フェッチするデータがなくなった)とき、私はそのメッセージを隠したいです。私はそうしようとしました。

loadingView.setVisibility(View.GONE);

残念ながら、これはビューを隠していますが、ビューのためのスペースを残しています。つまり、"Loading" メッセージがあった場所に大きな空白が出来てしまいます。このビューを適切に隠すにはどうしたらよいでしょうか。

私は removeFooterView() を使うことはできません。なぜなら、もう一度表示する必要があるかもしれず、その場合は addFooterView() を再び呼び出すことはできません。なぜなら、アダプタはすでに ListView を呼び出すことはできません。 addHeaderView() / addFooterView() というようにアダプターを設定した後に

どのように解決するのですか?

を呼び出すことが許可されているようです。 addHeaderView() / addFooterView() setAdapter() これらのメソッドのいずれかを少なくとも一度でも呼び出す限りは 前に . これはGoogleのかなり悪い設計上の決定なので、私は を問題提起しました。 . これと removeFooterView() と組み合わせると、私の解決策が出来上がります。

私が得た他の2つの答えに対して+1、それらは有効な(そして間違いなくより正しい)解決策です。しかし、私の答えは最もシンプルであり、私はシンプルさが好きなので、私自身の答えを受け入れたとマークします。