Как скрыть или показать адаптеры/представления с помощью cwac-merge?

У меня есть фрагмент, содержащий несколько списков, как вы можете догадаться, прокрутка — это беспорядок, поэтому я пробую cwac-merge, кажется, он отлично справляется со своей задачей, но я хотел настроить некоторые элементы, т. е. мне нужно, чтобы некоторые из адаптеров отображались или скрывались в зависимости от того, сколько элементов у них есть, прямо сейчас пустые адаптеры списка показывают пустое пространство, и я хотел бы, чтобы они исчезли до тех пор, пока элементы не будут получены.

введите здесь описание изображения

На снимке экрана (извините, он размыт, но мне еще не разрешено показывать продукт) вы можете видеть, что я выделил красными прямоугольниками пустые места, где я устанавливаю вид, чтобы иметь видимость = GONE.

Также одно из этих пустых мест вызвано тем, что у адаптера нет элементов.

Есть ли способ скрыть или показать определенные адаптеры или представления внутри MergeAdapter, чтобы они не занимали место?

Спасибо


person Aldo Reyes    schedule 09.12.2012    source источник
comment
Привет! Добро пожаловать в StackOverflow! StackOverflow предназначен для вопросов по программированию, а вы не задали вопрос. У вас также нет ни кода, ни макетов, ни скриншотов, иллюстрирующих ваше пустое место, и т. д. Следовательно, вряд ли кто-то сможет вам помочь.   -  person CommonsWare    schedule 09.12.2012
comment
@CommonsWare извините, сейчас лучше?   -  person Aldo Reyes    schedule 10.12.2012


Ответы (1)


где я устанавливаю вид, чтобы иметь видимость = GONE

IIRC, наличие строки GONE в строке ListView в целом проблематично. MergeAdapter не должно влиять на это.

Также одно из этих пустых мест вызвано тем, что у адаптера нет элементов.

Я скорее сомневаюсь в этом. Hierarchy View должен показать вам, что происходит на самом деле.

Есть ли способ скрыть или показать определенные адаптеры или представления внутри MergeAdapter, чтобы они не занимали место?

Адаптер, возвращающий 0 из getCount(), не должен занимать место, если вы вызываете notifyDataSetChanged() для MergeAdapter, чтобы он мог указать ListView перерисовать себя.

person CommonsWare    schedule 09.12.2012
comment
так что нет способа скрыть представление, которое было добавлено в MergeAdapter? - person Aldo Reyes; 10.12.2012
comment
@AldoReyes: понятия не имею. Я никогда не пробовал это, и я скептически отношусь к тому, что это хорошая идея. Если структура вашего ListView меняется так резко, установите новый адаптер, настроенный так, как вы хотите. Или переключитесь на ExpandableListView (и приготовьте для него подходящий адаптер), так как ExpandableListView имеет встроенное понятие скрытия и отображения разделов своего содержимого. - person CommonsWare; 10.12.2012
comment
спасибо, приятель, я решил вернуться к нескольким представлениям списка и установить высоту в зависимости от количества элементов, я знаю, что это не лучший вариант, но каждый из этих списков не будет увеличиваться более чем до 5 элементов. Я отмечу вас как правильный ответ, так как это привело меня к этому выбору. - person Aldo Reyes; 13.12.2012