16

私はAndroidマーケットの様子に似たレイアウトを作ろうとしています...コメントの下にあるように見えますが、ListViewスクロールしません(ページ全体がスクロールしますが、コメントはありません)。それがListViewであるかどうかはわかりませんが、リストビューのように見えるものが必要です(つまり、それらの分割バーと、スクロールできないものがあります)。LinearLayouta の代わりに aを使用することを提案する人ListViewもいますが、アイテムをクリック可能にして新しいアクティビティを開くことも望んでいます。助けてください?

私の現在のレイアウトツリーはそうです

<LinearLayout>
  <ScrollView>
     <RelativeLayout>

の中にコンテンツを入れようとしていRelativeLayoutます。

4

4 に答える 4

30

GoogleIo のこのビデオで listView を実行したプログラマーが説明したように、スクロール ビュー内に ListView を配置することはありません。リストをスクロールしない場合は、線形レイアウトのような ViewGroup を使用し、コード内のループですべての項目をこの ViewGroup に追加します。行全体をクリック可能にする場合は、別の ViewGroup を各行のルート ノードとして使用し、このビューに OnClickListener を追加する必要があります。

サンプルコード:

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

for (int current = 0; current < itemCount; current++) {
   View view = inflater.inflate(R.layout.layout_id, parent, false);

   //initialize the view

   view.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
          Intent intent = new Intent(getApplicationContext(), CLASS_TO_START)
          startActivity(intent);
      }
   });
   viewGroup.addView(view);
   if (current < itemCount - 1) {
      inflater.inflate(R.layout.line, viewGroup);
   }
}

このコードは、持っているアイテムごとに 1 つのビューを生成し、viewGroup に入れます。最後のアイテムを除くすべてのアイテムの後に、viewGroup に仕切りも追加されます。

于 2010-07-07T10:33:26.050 に答える
0

1 つ作成ListViewしてその中にすべてを入れると、ページ全体がスクロールします。独自のアダプター実装を展開することもできますが、CommonsWare の優れた MergeAdapteraddView()使用することをお勧めしますaddAdapter()。使用方法の詳細については、ページとデモ プロジェクトをご覧ください。

于 2010-07-07T10:17:45.370 に答える