(Android)更改微调器的子视图的文本大小

时间:2014-08-22 08:53:51

标签: java android spinner

我使用以下代码访问微调器的子视图,然后更改文本的字体大小。不幸的是,当我可以获得微调器的子视图的文本时,我无法更改文本的大小。谁能告诉我下面的问题?

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

1 个答案:

答案 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文件中指定文本大小而不具有手动分配。