2010-07-20 1 views
2

У меня есть ListView, который использует пользовательский адаптер. Я хочу динамически добавлять/удалять элементы из ListView. Я пробовал все внутри метода getView() в моем адаптере. Я пробовал делать setVisiblity(View.GONE) на вид, который я возвращаю. И на самом деле он не рисует представление, но он по-прежнему выделяет пространство для представления, и это просто пустое черное пространство.Создание невидимого андроида в представлении listview

Можно ли установить элементы в ListView невидимым?

+0

Не могли бы вы показать, как вы установили пункт GONE? –

+0

Нельзя выделять пространство в ListView, если вы установите возвращаемый вид в GONE. – Pentium10

+0

Я согласен, что он не должен выделять пространство, но он ... – BladeCoder

ответ

5

Если вы хотите удалить элементы из ListView, я бы изменил значения, которые возвращает связанный с ним ListAdapter, вместо того, чтобы пытаться манипулировать представлениями.

+0

Да, вместо того, чтобы возиться с видимостью, просто удалите их целиком. – st0le

+0

Я закончил создание 2 списков массивов и просто перемещал свои объекты туда и обратно (один полный список и один отображаемый список) – Falmarri

1

Вам нужно вызвать setVisiblity (View.GONE) на возвращенном представлении и все его представления внутри него. Если вы повторно используете переданный вами конвертированный вид, вам нужно помнить, что вы вызываете setVisiblity (View.VISIBLE) для всех видов, которые вы хотите видеть.

Если у вас много невидимых видов, вам может потребоваться установить высоту делителя на 0 и добавить свой собственный разделитель в возвращаемые виды. В противном случае «невидимые» виды будут иметь видимый разделитель и создают заметную серая линия между видимыми видами.

Смежные вопросы