Страница 1 из 1

Как добавить к listView новый элемент?

Добавлено: 22 дек 2014, 01:35
w1zard
Всем привет, вопрос следующий:
Есть listView со стандартным адаптером SimpleAdapter. Как при клике на элемент списка добавить под ним новый layout(в SimpleAdapter применялся другой)?
То есть по виду это примерно как ExpandableListView, только с одним элементом внутри.

Re: Как добавить к listView новый элемент?

Добавлено: 22 дек 2014, 03:07
doter.ua
По-твоему разработчики андроида просто так создали экспандбл лист? Лучше объясни что ты хочешь сделать, а не спрашивай "как сделать такой-то велосипед".

Re: Как добавить к listView новый элемент?

Добавлено: 22 дек 2014, 09:23
Mikhail_dev
Добавить или открыть? Если первое, то это не ExpandableListView. Для первого варианта можете поискать библиотеку тут - https://play.google.com/store/apps/deta ... oide.repos
В материальном дизайне вроде вышел как раз такой элемент, но я не уверен что он для версий ниже 5, так что ищите то что вам надо в этой программе-коллекции библиотек.

Re: Как добавить к listView новый элемент?

Добавлено: 22 дек 2014, 10:52
w1zard
Благодарю за ответы,
doter.ua, сейчас получаю данные с сервера в формате json парсю их и вывожу в listview. В поставленной задачи стоит условие, что ExpandableListView использовать нельзя, даже при угрозе обрезания и записи в талибан. Задача, чтобы при клике на item, нижний item(следующий за тем, на который кликнули) сдвигался и туда(в образовавшуюся брешь) добавлялся другой layout с определёнными textView внутри. При этом добавляемый layout отличается от того, который использует SimpleAdapter(его менять можно).

Mikhail_dev, нужно именно добавить. Да, в materialDesign есть recycleView который подошёл бы мне, но по версии не проходит((((

PS. Mikhail_dev, огромное спасибо за ссылку! :mrgreen:

Re: Как добавить к listView новый элемент?

Добавлено: 22 дек 2014, 13:58
doter.ua
А кастомный адаптер можно ииспользовать??

Re: Как добавить к listView новый элемент?

Добавлено: 22 дек 2014, 15:01
Mikhail_dev
doter.ua писал(а):А кастомный адаптер можно ииспользовать??
например?

Re: Как добавить к listView новый элемент?

Добавлено: 22 дек 2014, 16:26
w1zard
doter.ua писал(а):А кастомный адаптер можно ииспользовать??
Да, ограничения касаются только ExpandableListView :cry:

Re: Как добавить к listView новый элемент?

Добавлено: 23 дек 2014, 15:09
w1zard
Стало быть разумных человеческих(предусмотренных) вариантов нет?

Re: Как добавить к listView новый элемент?

Добавлено: 23 дек 2014, 16:37
doter.ua
Можно попробовать в кастомном адаптере модифицировать rowView - контейнер элемента. Так как адаптер реагирует на изменение данных, а не на изменение его "вида" напрямую при клике нужно изменять какую-нибудь булку(bool), а при отображении данных эта булка будет управлять блоком кода, который изменяет rowView. Например можно накидать туда элементов addChild. Место для данных можно заготовить заранее для каждого из элементов, просто оно будет пустым и использоваться в зависимости от булки.
P.S. В моем варианте rowView - элемент, который создается LayoutInflater-ом.

Re: Как добавить к listView новый элемент?

Добавлено: 23 дек 2014, 17:10
KamiSempai
w1zard писал(а):Да, в materialDesign есть recycleView который подошёл бы мне, но по версии не проходит((((
Он же в Support Library, там минимальная версия API 7.

Re: Как добавить к listView новый элемент?

Добавлено: 24 дек 2014, 08:36
finberg
Может в разметку ячейки добавит элемент ViewStub? Погуглите, может подойдёт вам. В адаптере делать ViewStub видимым если необходимо.

Re: Как добавить к listView новый элемент?

Добавлено: 19 янв 2015, 00:41
w1zard
Камрады, всем спасибо) в итоге на viewstub остановился