-4

私は運がない次のシナリオに対処しようとしています:(次のリストビューを構築したい:

"--------------------"

  header


< empty space >

< empty space >

< empty space >

< empty space >





  item1

  footer

"-------------------"

ヘッダーとフッターの間には何も入れたくありません。黒いナッダだけです。出来ますか?ありがとう

4

1 に答える 1

1

まず第一に、それがどのように機能するかを理解する必要があります。ヘッダーとフッター (以下、HF と呼びます) - 上下のリストに追加できるビュー。適切なビュー リスト項目がアダプターとプログラマーを満たしていないことを確認するため。ビューを作成し、メソッドまたは addHeader addFooter のリストに送信する必要があります。

これらは、実装の 2 つの方法です。ヘッダーの例を考えてみましょう。

  1. addHeaderView (ビュー v、オブジェクト データ、ブール値 isSelectable)

v - リスト アイテム データとして表示されるビュー - アイテム リストに関連付けられたオブジェクト isSelectable - アイテムをクリックするか、アイテムを離すことができるか

  1. addHeaderView (ビュー v)

次のパラメータを持つ最初のメソッドの課題があります: addHeaderView (v, null, true);

HF を使用する場合、アダプターには注意事項があります。リスト アダプター (メソッド setAdapter) を割り当てると、ヘッダーまたはフッターに既に追加されているチェックのリスト。

そうでない場合、リストはアクティブであり、アダプター自体が HF をさらに強化することを禁止します。メソッドと addHeader addFooter - «setAdapter を呼び出す前にこれを呼び出します» のヘルプに記述されています。つまり、アダプタ リストを割り当てる前に HF を追加する必要があります。

その場合、リストは、コンストラクターを使用して、結果のアダプター HeaderViewListAdapter をラップします。リスト。そして今、作業中のリストは、アダプター HeaderViewListAdapter によって使用されます。つまり、HF として使用され、アダプターからのデータがリストに割り当てられます。

以下のサンプルコードを実行すると

  lvMain.addHeaderView(header1);
    lvMain.addHeaderView(header2, "some text for header 2", false);
    lvMain.addFooterView(footer1);
    lvMain.addFooterView(footer2, "some text for footer 2", false);
    lvMain.setAdapter(adapter);

2ヘッダー、2フッターのリストビューが表示され、ヘッダーとフッターの下にアダプターがあります。

あなたの問題について: はい、これはいくつかのケースで可能です:

  • あなたはアダプターが膨らんだ空白のビューです
  • アダプターのデータにあるのは、「」またはこのようなものです
  • 膨張したビューには黒い背景に黒いテキストがありますが、その場合、クリックするとこれが表示される可能性があります。

将来のために - 問題を完全に特定できるように、コードを投稿し、テキスト ボックスにタグを使用してください

于 2013-07-07T17:24:45.627 に答える