がんばって英語を多用してみました。。
前の記事で、ArrayAdapter#isEnabled()をオーバーライドする件を書いたが、あれをやるとそのアイテム前後の罫線が消えてしまうのだ。
これは、Viewに対しては何もしてないのだ。
もしかして、disableだから罫線もいらんでしょう?ってことだろうか。
罫線を含めてitemだからかなl。
おっと、いつもの私なら、もうAndroidわからーん、で投げてしまうのだが、少し経験値がついた。
こういうときは、罫線のカスタマイズの方法を調べてみるとよいのだ。
そうすると、android:dividerって項目らしい。
これで検索すると出てきた。
areAllItemsEnabled()でtrueを返すようにするとよい、か。
これなら簡単だ。
よかったよかった・・・・あれ、変わらない。
呼ばれていないわけではないのだが、trueを返してもfalseを返しても、何も変わらない。
呼ばれるのは、HeaderViewListAdapter#areAllItemsEnabled()からだ。
Headerとついているのが、なんか嫌な予感がする。
HeaderとかFooterがついている場合はこっち、ということだ。
確かに今回、ヘッダはないけどフッタは付けてるんだった。
http://java.dzone.com/articles/android-listview-%E2%80%93-fixing
ぐわあ、実装が増えるな。
//罫線は出したい
ListView.FixedViewInfo footerInfo = listView.new FixedViewInfo();
footerInfo.view = footer;footerInfo.isSelectable = false;
ArrayList headers = new ArrayList(0);
ArrayList footers = new ArrayList(1);
footers.add(footerInfo);HeaderViewListAdapter wrapper = new HeaderViewListAdapter(headers, footers, adapter) {
@Overridepublic boolean areAllItemsEnabled() {return true;}};listView.setAdapter(wrapper);
やれやれだぜ・・・。
あと、サンプル通りに書くと、ArrayList#add()を呼ぶところで「unchecked」って出てくる。
どうも、型チェックが働かんぞ、と言っているらしいので、
ArrayList<ListView.FixedViewInfo> headers = new ArrayList<ListView.FixedViewInfo>(0);
こんな感じにすると消えた。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。