Как изменить атрибуты представлений внутри держателя в зависимости от позиции? эта проблема возникает только при использовании переработок с классом держателя данных. Я могу установить разные заголовки для каждого текстового поля, основанного на позиции, но я не могу изменять текст каждого из этих текстовых просмотров на основе позиции.Как сохранить определенные атрибуты представлений в пользовательском списках просмотров
, конечно же, с recycleView = false это работает просто отлично, потому что представления не будут переработаны, но как заставить работать с переработчиком?
boolean recycleView = false;
ArrayList<SocialItem> list;
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null || !recycleView) {
LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.social_list_item, null);
holder = new ViewHolder();
holder.title1 = (TextView) convertView.findViewById(R.id.si_title1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.title1.setText(list.get(position).getTitle1());
//changes textsize of textview to fit in specific width, and saves in our holder list, and sets from it in textview
list.get(position).setTxtSize1(Util.correctTVWidth(holder.title1, 110));
holder.title1.setTextSize(TypedValue.COMPLEX_UNIT_PX, list.get(position).getTxtSize1());
return convertView;
}
решение Kingfisher Фуок работает, но почему следующий код не будет работать? Я думаю, что это так, это экономит расчетный текст в простом держателе pojo, основанном на позиции, и я установил из него текст, не так ли?
//changes textsize of textview to fit in specific width, and saves in our holder list, and sets from it in textview
list.get(position).setTxtSize1(Util.correctTVWidth(holder.title1, 110));
holder.title1.setTextSize(TypedValue.COMPLEX_UNIT_PX, list.get(position).getTxtSize1());
какая у вас функция 'Util.correctTVWidth (holder.title1, 110)' do? –
возвращает скорректированный текст в соответствии с текстом, если текст длинный – winchester