Я работаю над автопросмотром списка. Каждый раз, прежде чем я позвоню
mAdapter.notifyDataSetChanged();
я переключаю последний элемент в списке с кружком прогресса.
/**
* displays a progress banner instead of the last item.
* @param reload boolean
*/
protected void showReloadView(boolean reload){
View item = mListView.getChildAt(onLastItem);
//View item = mListView.getAdapter().getView(onLastItem, null, null);
content = item.findViewById(id.itemContent);
loading = item.findViewById(id.itemLoading);
if(reload){
content.setVisibility(View.GONE);
loading.setVisibility(View.VISIBLE);
}else{
content.setVisibility(View.VISIBLE);
loading.setVisibility(View.GONE);
}
Моя проблема здесь в том, что я перерабатываю свои взгляды, упомянутые в SDK, как EfficientAdapter.
Поэтому мой объект ListView в настоящее время содержит не более 8 элементов (потому что больше нет видимых)
Первый запуск в порядке, потому что onLastItem равен 7 (видимых элементов - 1), но второй запуск
ListView.getChildCount()
возвращает только 6 предметов. Так почему же мой ListView становится меньше? Из-за Visibility.GONE?
Я что-то делаю неправильно?
Я также пытался использовать незакомментированную строку. Мой адаптер знает реальный размер списка, и я даже могу получить представление. Но настройка видимости этих представлений не имеет никакого эффекта.
Спасибо заранее