我使用以下代码访问微调器的子视图,然后更改文本的字体大小。不幸的是,当我可以获得微调器的子视图的文本时,我无法更改文本的大小。谁能告诉我下面的问题?
SpinnerAdapter temp=spinner.getAdapter();//get adapter from spinner
TextView text_in_spinner=(TextView)temp.getDropDownView(1, null, null);//get all view at position 1
text_in_spinner.setTextSize(TypedValue.COMPLEX_UNIT_SP,15);//set text size
Log.v("view text",(String)text_in_spinner.getText());//get text
答案 0 :(得分:-1)
您可以实现自定义适配器:
private static class MySpinnerAdapter implements SpinnerAdapter {
private SpinnerAdapter mAdapter;
public DropDownAdapter(SpinnerAdapter adapter) {
this.mAdapter = adapter;
}
public View getDropDownView(int position, View convertView, ViewGroup parent) {
View v = mAdapter.getDropDownView(position, convertView, parent);
(TextView)v.setTextSize(TypedValue.COMPLEX_UNIT_SP,15);
}
}
所以你改变了
spinner.setAdapter(adapter);
到
spinner.setAdapter(new MySpinnerAdapter(adapter));
另一个选项是为下拉项指定自定义布局。假设您在doc中使用ArrayAdapter
,则可以指定自己的布局资源而不是android.R.layout.simple_spinner_dropdown_item
,这样您就可以在布局xml文件中指定文本大小而不具有手动分配。