С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 1
#1

Скрытие элемента ListView - Программирование Android

04.11.2014, 14:03. Просмотров 1869. Ответов 23
Метки нет (Все метки)

Заполняю своим адаптером, унаследованным от BaseAdapter. В качестве item использую свой класс который имеет поле isEnable - если оно равно false вместо нормальной строки возвращает в список new View();. При нажатии на элемент назначаю isEnable = false и вызываю adapter.notifyDataSetChanged(). Отрабатывает все отлично, да вот приложение подвисает примерно на секунду. Писал логи при нажатии на элемент - все операции выполняются за 5-7 миллисекунд. Что это может быть и как не вешать ui? Пробовал даже в AsyncTask все выносить - результат тот же. Есть какие нибудь идеи как заставить это работать быстро?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2014, 14:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Скрытие элемента ListView (Программирование Android):

Замена элемента в ListView - Программирование Android
Доброго времени суток, форумчане! Столкнулся с проблемой есть ListView у которого все элементы это TextView, как запрограммировать чтобы...

выделение элемента в ListView - Программирование Android
Подскажите, что я делаю не так? У меня в кастомном диалоге создается и заполняется список, при его отображении необходимо чтоб по умолчанию...

Переход с элемента listView на activity - Программирование Android
никак не возьму в толк, каким образом можно реализовать переход на новое activity с элемента listView, чтобы при нажатии на 1 строку...

Клик по айтему элемента ListView - Программирование Android
Добрый день товарищи. Есть необходимость отследить нажатие на элемент элемента ListView, извиняюсь за тавтологию. Вот пока лишь...

Зафиксировать пзицию элемента в ListView - Программирование Android
Коллеги, нужен совет. Ситуация такая - Есть один ListView, элементом списка является WebView. Так вот, после иницализации адаптера нужно...

ListView не работает выбор элемента - Программирование Android
Доброго времени суток. Который день мучаюсь. Не знаю как поменять цвет ListView, так что бы не сбить работу выбора элемента при нажатии....

23
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
13.11.2014, 13:40 #16
Spelcrawler, хорошо, что затронули тему ScrollView. Наткнулся на баг. Дело в том, что мой ListView - нестандартный, он может содержать записи любого типа. Соответственно, в нём могут быть строки и с 1, и с 3 полями. Так вот, пока было 3 поля, всё работало как обычно. Сейчас добавил строки с 1 полем, и случился баг. При прокрутке приложение падает, потому что бедный ListView взамен исчезнувших записей (View) пытается подставить новые, но подставляет не тот layout. Пытается взамен исчезнувшей записи показать запись того же типа, что приводит к немедленному крэшу. Думаю, переделаю на ScrollView. Делать ListView, состоящим из двух (добавлять шапку в виде другого ListView) не стану, уже несколько месяцев назад накалывался на этом. Так что остаётся сделать правильно ScrollView. А как у вас организуется массив View? Не возникнет ли проблемы, аналогичной описанной?
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 1
13.11.2014, 13:47  [ТС] #17
CoolMind, у меня проще, есть кастомная вью. Она на вход принимает id по нему из БД берет всю нужную инфу и поставляет ее в нужные места. Обычно у меня элементы по порядку id выводятся, в этом случае просто прохожусь циклом от 0 до максимального количества элементов, создаю в нем вьюшку и добавляю в ArrayList. Первые 10 элементов создаю сразу, и после создания добавляю на ListView. Потом запускаю AsynkTask, который начиная с 11 элемента и до конца генерирует мою вьюшку, добавляет в ArrayList посылает publishProgress - вьюшка добавляется в ListView.
1
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
13.11.2014, 14:31 #18
Spelcrawler, интересно. Так всё же, вы используете ListView или ScrollView?
У себя, вроде, решил пока проблему, немного переписал код. Не стал рисковать и всё переделывать под ScrollView, но, может быть, всё ещё впереди.
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 1
13.11.2014, 14:33  [ТС] #19
CoolMind, когда как. Если нужно только отобразить что-то списком - ListView. Когда нужны всякие операции с элементами(скрытие, перемещение, анимации) - ScrollView. Вообще можно и ScrollView переписать чтобы он все умел, но долго.
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
13.11.2014, 14:33 #20
А если пользователь увидит список и начнёт крутить, то приложение не упадёт, пока работает AsyncTask?
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 1
13.11.2014, 15:08  [ТС] #21
Нет, только пока он работает скролл глючит немного.
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
13.11.2014, 15:43 #22
Spelcrawler, понятно, но всё равно, мысль хорошая, спасибо за наводку.
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 1
13.11.2014, 15:57  [ТС] #23
Если заранее известно количество элементов - можно залить весь ScrollView пустыми элементами (н.р. linearLayout) и постепенно их заменять на то что нужно. В таком случае не должен лагать скролл.
0
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 1
19.11.2014, 10:53  [ТС] #24
Дописал на днях класс, используется почти так же как ScrollView. Посылаем ArrayList с данными, метод обработки данных во вьюшку и все). Добавил анимацию скрытия элемента (постепенно уменьшаю высоту). Работает отлично. Единственный минус в коде - нужно запускать заполнение элементами отдельно. Сейчас заточено под мои нужды, но если кому нужно - могу переделать и выложить.

Добавлено через 35 минут
Цитата Сообщение от Spelcrawler Посмотреть сообщение
так же как ScrollView
Как ListView)
0
19.11.2014, 10:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2014, 10:53
Привет! Вот еще темы с ответами:

Оформление элемента списка ListView - Программирование Android
Здравствуйте. Подскажите, как можно добиться результата, показанного на рисунке 1 (это в Paint подрисовано :) ) У меня сейчас выглядит...

ListView: подсветка выбранного элемента - Программирование Android
В активити есть несколько списков со своей разметкой. Пересмотрел кучу примеров, но у самого что-то не получается оставить после нажатия...

ListView ячейки, получить Id элемента из SQLite - Программирование Android
есть база данных SQLITE. некоторые элементы БД выводятся в ListView через адаптер и вспомогательный XML. моя задача - в onItemClick перейти...

Сохранение position элемента ListView при поиске - Программирование Android
Если можно подробно описать и показать пример кода не посредственно показывающего сохранение позиции конкретного элемента ListView. т.к....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.