我正在使用自定义微调程序库Material Spinner。我已将适配器设置为微调器,因为我希望getDropDownView
中的字体大小不同。我有三个spinners,其中两个只显示包名。中间的微调工作正常。在自定义微调器中获取程序包名称
一切为比所述阵列和所述宽度其他所有三个微调器是相同的。那么为什么中间微调。我无法弄清楚问题是什么。
这不是一个重复的问题中提到
一个原因是,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;
}
是XML布局视图定义完全一样? (ID除外) – KWA
是的。只有宽度不同 – suku