我正在使用自定义微调器库Material Spinner。我已将适配器设置为微调器,因为我希望getDropDownView
中的字体大小不同。我有三个微调器,其中两个只显示包名。中间旋转器工作正常。
除了阵列和宽度之外,所有三个微调器都是相同的。那么为什么中间的旋转器呢?我无法弄清楚问题是什么。
这不是重复的问题
提到的一个原因是应该覆盖getView
方法。如下所示,它已经完成。我发现在第一个和第三个微调器的情况下,没有调用getView方法或getDropDownView方法。我不明白为什么。
getItemCount
,getItemId
,getItem
方法不需要。但是当我也使用这些方法时,结果并没有改变。
MaterialSpinner msDay = (MaterialSpinner) getActivity().findViewById(R.id.fgenderage_ms_day);
List dayList = Arrays.asList(getResources().getStringArray(R.array.fgenderage_day));
msDay.setItems(new EnglishSpinnerAdapter(getActivity(), dayList));
MaterialSpinner msMonth = (MaterialSpinner) getActivity().findViewById(R.id.fgenderage_ms_month);
List monthList = Arrays.asList(getResources().getStringArray(R.array.fgenderage_month));
msMonth.setAdapter(new EnglishSpinnerAdapter(getActivity(), monthList));
MaterialSpinner msYear = (MaterialSpinner) getActivity().findViewById(R.id.fgenderage_ms_year);
List yearList = Arrays.asList(getResources().getStringArray(R.array.fgenderage_year));
msYear.setItems(new EnglishSpinnerAdapter(getActivity(), yearList));
适配器:
public class EnglishSpinnerAdapter extends MaterialSpinnerAdapter{
private List list;
private Context ctx;
public EnglishSpinnerAdapter(Context context, List items) {
super(context, items);
ctx = context;
list = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = new TextView(ctx);
textView.setText(list.get(position).toString());
return textView;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
TextView textView = new TextView(ctx);
textView.setText(list.get(position).toString());
return textView;
}
答案 0 :(得分:0)
更改此
msDay.setItem(new EnglishSpinnerAdapter(getActivity(), dayList));
到这个
msDay.setAdapter(new EnglishSpinnerAdapter(getActivity(), dayList));