Я хотел бы создать меньше работы для метода getView андроидного списка Adapter. Я читал, что мы можем позволить ViewGroup обновлять представление вместо метода getView и, таким образом, ускорить прокрутку. Мне нужна помощь в понимании этого понятия, и вот что я до сих пор:Адаптер Android getView лучше развязывает с помощью viewGroup
@Override
public View getView(int position, View convertView, ViewGroup parent) {
MyViewGroup myViewGroup;
if (convertView == null) {
myViewGroup = (MyViewGroup) LayoutInflater.from(context)
.inflate(R.layout.banana_phone, parent, false);
} else {
myViewGroup = (MyViewGroup) convertView;
}
InfoObject info = getItem(position);
myViewGroup.update(info); //how does this part work ? this is synchrounous so getView has to wait, doesn't it ?
return myViewGroup;
}
Я получил эту идею из этого site
Так что мой вопрос, как я могу сделать обновление ViewGroup, не давая GetView ждать. Я верю в реализацию, которую я получил выше. GetView будет ждать обновления группы просмотра, правильно? так что это все равно замедлит список. Я хотел бы привести пример того, как будет выглядеть пользовательская группа просмотра (или нестандартная, если это так)?
Может ли кто-нибудь привести пример того, как будет выглядеть MyViewGroup после расширения ViewGroup, и сказать, что обновление текстового представления в представлении списка как im не понимает, как структурировать настраиваемую группу представлений, чтобы, например, обновлять текстовое представление?
* viewGroup update без разрешения getView wait * ... это сложно ... * правильно? * Правильно ... помните, что этот код повторно использует представления ... так что если вы позволяете * .update * быть " отложено «каким-то образом вы можете столкнуться с проблемой устаревания данных (myViewGroup следует обновить в другом инфо-объекте) ... хороший пример того, как он может быть реализован, скрыт внутри кода загрузчика изображения ... – Selvin
Похоже, он просто кладет все обновление в ViewGroup, которое обычно находится в «getView()». Это не ускоряет или замедляет ListView. Это просто перемещение работы из одного класса в другой. – DeeV
В основном адаптер должен знать только о MyViewGroup. Он не должен знать, какие элементы View находятся внутри MyViewGroup, поэтому легче вносить изменения. – DeeV