2010年5月9日日曜日

ListViewの行の間の区切り線を変える。






ListViewの区切り線の色を変更したくなったので、調べていたところ



ListViewについて - isherの日記



こちらですごく詳しく解説されていました。





もっと単純に色と太さを変えるだけならxmlファイルの記述だけでいけます。

android:divider="#000000"
android:dividerHeight="2sp"
これで色と太さが変わります。




とりあえず、線の画像のみを編集してみました。



画像ファイルは、



C:\android-sdk-windows\platforms\android-3\data\res\drawable\divider_horizontal_dark.9.png



にありました。(前は"android-3"の部分が1.5とかだったんですが、最近のバージョンでは変わっています。)



dividerで始まるものが区切り線ですが、とりあえずどれでも良いので適当なところにコピー。









Windowsのペイントで開いて、適当な色に編集して保存。(divider_horizontal_chairo.png)









Eclipseのパッケージエクスプローラでlayout以下にコピー。



以下のようにxmlで指定すると完成。




<ListView
........
android:divider="@drawable/divider_horizontal_chairo"
/>











なぜかスクロール時にリストが黒くなるようになった。





mListView.setScrollingCacheEnabled(false);

この設定でいけました。





-----

     android:scrollingCache="false"

     />





どうも、スクロール時にListViewの親のViewの色が透けているようなので、ListViewの一つ上であるLinearLayoutのバックの色と、ListViewのスクロール中の色を同じ色に設定した。




andro id:cacheColorHintというのがスクロール中の色を指定しているらしい。






LinearLayout
.....
android:background="#FF0000";
 

ListView
.....
android:cacheColorHint="#FF0000";
.....












これで完成。








0 件のコメント:

コメントを投稿