我正在使用自定義微調程序庫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