Можно ли каким- MergeAdapter
образом удалить вид или адаптер из MergeAdapter
? Я бы попытался расширить его и удалить вид из pieces
но он private
. Или, может быть, есть альтернативное решение для отображения / скрытия вида в этом адаптере? Я попытался установить его layout_height
в ноль и видимость в View.GONE
, но он по-прежнему показывает пустой элемент списка. Заранее спасибо.
Чтобы удалить представление или адаптер из MergeAdapter
используйте следующие методы:
setActive()
в вашем экземпляре mergeAdapter.
Например: Чтобы удалить Textview
(mytextView) из MergeAdapter
(merAdapter), используйте:
merAdapter.setActive(mytextViiew,false);
И чтобы снова включить его (чтобы сделать его видимым), используйте:
merAdapter.setActive(mytextViiew,true);
Подробнее см. Документацию MergeAdapter
:
Можно ли каким-либо образом удалить вид или адаптер из MergeAdapter?
Не сейчас, извините. Его не следует добавлять слишком сложно (удалить его из коллекции и вызвать notifyDataSetChanged()
для обновления AdapterView
), если вы хотите сделать снимок. Взносы приветствуются! 🙂
Ваш MergeAdapter должен иметь метод, называемый getCount()
.., если я понял вас правильно, возвращая ноль оттуда может решить вашу проблему ..
Расширяясь на ответе Марка Мерфи, я думаю, что это так же просто, как добавить этот метод в MergeAdapter:
public void removeAdapter(ListAdapter la) { pieces.remove(la); }
remove()
принимает объект и выполнит все необходимое тестирование и удаление для вас, если этот объект содержится в списке частей. Вы могли бы заставить это возвратить bool или что-то в ваших собственных целях, но у меня не было такой необходимости.
Тогда просто назовите что-то вроде:
int view_to_remove = *AN_INT* adapter.removeAdapter(listAdapter.getAdapter(view_to_remove)); adapter.notifyDataSetChanged();