Удалить вид из MergeAdapter - PullRequest
       7

Удалить вид из MergeAdapter

4 голосов
/ 04 августа 2011

Можно ли каким-то образом удалить представление или адаптер из MergeAdapter?Я бы попытался расширить его и удалить представление из pieces, но это private.Или, может быть, есть альтернативное решение для отображения / скрытия вида в этом адаптере?Я попытался установить его layout_height на ноль и видимость на View.GONE, но он все еще показывает пустой элемент списка.Заранее спасибо.

Ответы [ 4 ]

8 голосов
/ 06 марта 2014

Чтобы удалить представление или адаптер из MergeAdapter, используйте следующие методы:

setActive() в вашем экземпляре mergeAdapter.

Например: Чтобы удалить Textview (mytextView) из MergeAdapter (merAdapter), используйте:

merAdapter.setActive(mytextViiew,false);

И чтобы включить его снова (чтобы сделать его видимым) используйте:

merAdapter.setActive(mytextViiew,true);

Подробнее см. Документацию MergeAdapter:

https://github.com/commonsguy/cwac-merge

6 голосов
/ 05 августа 2011

Можно ли каким-то образом удалить представление или адаптер из MergeAdapter?

В настоящее время нет, извините.Это не должно быть слишком сложно добавить (удалить его из коллекции и вызвать notifyDataSetChanged(), чтобы обновить AdapterView), если вы хотите сделать снимок.Вклад приветствуется!: -)

1 голос
/ 03 ноября 2011

Продолжая ответ Марка Мерфи, я думаю, что это так же просто, как добавить этот метод в MergeAdapter:

public void removeAdapter(ListAdapter la) {
    pieces.remove(la);
  }

remove() берет объект и выполнит все необходимое тестирование и удаление для вас, если этот объект содержится в списке частей. Вы могли бы сделать это возвращение булом или чем-то еще для своих собственных целей, но у меня не было такой необходимости.

Тогда просто назовите что-то вроде:

int view_to_remove = *AN_INT*
adapter.removeAdapter(listAdapter.getAdapter(view_to_remove));
adapter.notifyDataSetChanged();
1 голос
/ 04 августа 2011

Ваш MergeAdapter должен иметь метод с именем getCount() .. Если я вас правильно понял, возврат нуля оттуда может решить вашу проблему ..

...