Переработка списка странное пустое пространство
У меня есть проблема, аналогичная той, что в этом вопросе:ListView и проблема переработки строк
Выше решено. но это же решение не работает для меня.
У меня есть список, состоящий из текстовых просмотров. Каждое текстовое представление может содержать переменное количество изображений. Я получаю изображения с помощью html.imagegetter и использую утилизацию в методе getview адаптера списка.
Если в текстовом представлении есть одно или несколько изображений, оно будет иметь высоту, чтобы соответствовать его содержанию. Когда это текстовое представление перерабатывается и новый контент не заполняет заданную ранее высоту, появится пустое пространство.
Проблема в том, что я не могу восстановить высоту textview в getview, потому что я не знаю, какую высоту будет иметь следующий элемент списка.
это мой getview:
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
View rowView = convertView;
if (rowView == null) {
LayoutInflater inflater = context.getLayoutInflater();
rowView = inflater.inflate(resource, parent, false);
holder = new ViewHolder();
holder.imgAvatar = (ImageView) rowView.findViewById(R.id.imgAvatar);
holder.textDetails = (TextView) rowView.findViewById(R.id.textDetails);
holder.textPostTime = (TextView) rowView.findViewById(R.id.textPostTime);
holder.textPost = (TextView) rowView.findViewById(R.id.textPost);
rowView.setTag(holder);
} else {
holder = (ViewHolder) rowView.getTag();
}
holder.textDetails.setText(details.toString());
holder.textPostTime.setText(x.postTime);
holder.textPost.setText(Html.fromHtml(x.postBody, new URLImageGetter(holder.textPost, context), null, context));
return rowView;
}
это расположение строк:
<TextView
android:ellipsize="none"
android:autoLink="web"
android:textColor="#000000"
android:id="@+id/textPost"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
THE PROBLEM: Механизм повторного использования списка не может рассчитать новую высоту для используемых видов в соответствии с его новым содержимым. Без переработки, это слишком медленно.