ListViewの横幅レイアウト指定で疑問

androidのListViewを学習していて、一瞬あれっと思ったこと。androidプログラミングの中ではとても初歩的な内容だけど...。

ふつうのリストなら、項目をタッチして選択状態にしたときには

device2

このように横幅いっぱいに反転して選択状態になるはずなのに、

device

上のように文字列のところだけが反転していた。

なんでだろうと思ったら、ListViewのレイアウトの指定が間違っていてListViewのlayout_widthが"wrap_content"になっていたというオチ。で、以下が正しいのだけど...

<ListView android:id="@+id/ListView01" android:layout_width="fill_parent" android:layout_height="wrap_content"></ListView>

ListViewの横幅がwrap_contentだとすると、なぜ

device3

上記の黄色い丸印のように、ListViewの項目区切り線は画面横幅いっぱいに描画されているんだろう?という疑問。

wrap_content指定ならListView自体の幅が狭くなって区切り線もそこまでしか描かれないのなら意味がわかるような...。それともレイアウト指定について私が何か勘違いをしててこの動作で正しいのかもしれないけど。

ちなみにListViewにAdapterから渡している項目用のTextViewは、layout_widthをwrap_contentにしてもfill_parentにしても変わらず。


あと、ListViewにOnClickListenerを設定しようとすると実行時に例外吐くのね。いや、単にOnItemClickListenerと指定を間違えただけだけど...。

コメント

タイトルとURLをコピーしました