Я использую виджет колеса из проекта kankan. Я последовал за демо. Я внедрил пользовательский вид для колесных элементов, и после загрузки большая часть элементов колеса не отображается. Вот мой код:kankan.wheel.widget.WheelView. Отображаются пользовательские виды в arent arent arent
Мой адаптер:
public class MyAdapter implements WheelViewAdapter {
// Countries names
static class ViewHolder {
TextView tvUserName;
TextView tvcountry;
TextView tvAge;
TextView tvPlayTime;
ImageView imProfilePhoto;
}
private User[] fans;
User fan;
Context con;
// Countries flags
/**
* Constructor
*/
public MyAdapter(Context context, User[] fans) {
super();
this.fans = fans;
con = context;
//setItemTextResource(R.id.textViewCountryV);
}
@Override
public View getItem(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
//super.getItem(poition, convertView, parent);
ViewHolder holder;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) con
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.fan_roulette_item, parent, false);
holder = new ViewHolder();
holder.imProfilePhoto = (ImageView) convertView.findViewById(R.id.ivProfilePhoto);
fan = this.fans[position];
holder.tvcountry = (TextView) convertView.findViewById(R.id.textViewCountryV);
holder.tvAge = (TextView) convertView.findViewById(R.id.textViewAgeV);
holder.tvPlayTime = (TextView) convertView.findViewById(R.id.textViewPlayTimeV);
holder.tvUserName = (TextView) convertView.findViewById(R.id.textViewUserNameV);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
MainActivity.myImageLoader.DisplayImage(fans[position].imageURL,
holder.imProfilePhoto, true);
holder.tvUserName.setText(fan.username);
holder.tvcountry.setText(fan.country);
holder.tvAge.setText("" + fan.age);
holder.tvPlayTime.setText("" + fan.playTime);
return convertView;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) con
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.fan_roulette_item, parent, false);
holder = new ViewHolder();
holder.imProfilePhoto = (ImageView) convertView.findViewById(R.id.ivProfilePhoto);
fan = this.fans[position];
holder.tvcountry = (TextView) convertView.findViewById(R.id.textViewCountryV);
holder.tvAge = (TextView) convertView.findViewById(R.id.textViewAgeV);
holder.tvPlayTime = (TextView) convertView.findViewById(R.id.textViewPlayTimeV);
holder.tvUserName = (TextView) convertView.findViewById(R.id.textViewUserNameV);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
MainActivity.myImageLoader.DisplayImage(fans[position].imageURL,
holder.imProfilePhoto, true);
holder.tvUserName.setText(fan.username);
holder.tvcountry.setText(fan.country);
holder.tvAge.setText("" + fan.age);
holder.tvPlayTime.setText("" + fan.playTime);
return convertView;
}
@Override
public int getItemsCount() {
return fans.length;
}
public User getCurrentItem(int currentWheelItem) {
return this.fans[currentWheelItem];
}
@Override
public View getEmptyItem(View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
// TODO Auto-generated method stub
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
// TODO Auto-generated method stub
}
}
Симптомы: в начале, когда колесо загружается, иногда я могу видеть мои пользовательские элементы, а иногда нет. После прокрутки в 9 из 10 раз можно увидеть только изображение в элементе, и все остальные текстовые изображения не отображаются.
Я искал через Интернет, но не нашел решения.