Spinnerの見た目をカスタマイズ
大体の書き方がわかったのでメモ程度に
やり方の基本はListViewと同じ。getView()でinflateして書き換えてあげれば大丈夫。
ただ、getDropDownView()の方も設定して上げる必要がある。
- getView():こいつがクリックする前の描画に使われる
- getDropDownView():こいつがクリックしたあとの描画時に使われる。
画面的に言うと、こんな感じ
サンプルを書くまでもないけど、↓みたいに書くことになる。
@Override public View getDropDownView (final int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { // このhogehogeの部分を書き換える convertView = mInflater.inflate(R.layout.hogehoge, null); /* * ViewHolderに設定してなんちらかんちら */ } else { holder = (ViewHolder)convertView.getTag(); } /* * あとは好きに設定してねー */ return convertView; } @Override public View getView (final int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { // このhogehogeの部分を書き換える convertView = mInflater.inflate(R.layout.hogehoge, null); /* * ViewHolderに設定してなんちらかんちら */ } else { holder = (ViewHolder)convertView.getTag(); } /* * あとは好きに設定してねー */ return convertView; }
getDropDownView()がわからなくてすげー手こずったけど、あとは好き勝手に出来るはず。
xmlとか使ってstyle指定してやったほうが動作は速いのかも。試してないけど。。。