2015-11-08 5 views
0

У меня есть приложение, которое потребует вызова веб-службы и создания списка карт на основе ответа. И.Е. Количество и содержание карт не ограничено. Так что давайте говорить, что мой ответ выглядит следующим образом (обратите внимание, что это упрощенный ответ):Android building dynamic views

{ 
    "items": [ 
    "1", 
    "2", 
    "3", 
    "4", 
    "5" 
    ], 
    "timestamp": "bla bla bla" 
} 

Для каждого элемента в массиве items создаются новая потребность карты. Каков наиболее эффективный способ сделать это? Должен ли я просто программно создавать все карты, а их добавить их на Java, использовать фрагменты, или я неправильно думаю?

ответ

2

Каков наиболее эффективный способ осуществления этого?

Трудно ответить абстрактно, учитывая, что никто не знает, что такое «карточки», и никто не знает, что такое «контент». В общем, самый эффективный способ создания вещей - не создавать их, пока они не понадобятся.

В Android для вертикально-прокрутки списка (моя интерпретация «списка карт») умеренно легких вещей, вы бы обернуть массив данных модели в ArrayAdapter или RecyclerView.Adapter, для использования с ListView или RecyclerView соответственно. Здесь, «умеренно легкий», думаю, твиты и тому подобное.

Для вертикально-прокручиваемого списка тяжеловесных вещей ... вообще, просто скажите «нет», поскольку это не типичный образец UX на Android. Горизонтальное прокручивание - типичный подход для работы с набором визуально сложных предметов. Обычно используется ViewPager и обычно использует фрагменты для страниц. Для большой коллекции (скажем, более полудюжины) используйте FragmentStatePagerAdapter, чтобы ограничить количество кучи пространства, потребляемого вашим пользовательским интерфейсом. Чтобы провести сравнение, отображаемое имя контакта + миниатюра будет легким и обычно показано вертикально прокручивается в ListView/RecyclerView. Показывая полную контактную информацию (увеличенное изображение, все адреса электронной почты, все номера телефонов и т. Д.), Можно обрабатывать через горизонтальное прокручивание с использованием ViewPager.

Если в Лос-Анджелесе будет blow'd вверх по супер-злодеем, если вы не реализуете это в вертикальной прокруткой моды и элементы являются тяжеловес, есть по крайней мере одна вертикальная ViewPager реализация плавающих вокруг как библиотеки, хотя я не использовал это.

+0

Карты как в «CardView» - http://www.google.com/design/spec/components/cards.html –

+0

@James_Parsons: Это не меняет ответа. Все 'CardView' - это добавление округлых углов и тень для коллекции связанных виджетов. – CommonsWare

+0

Немного googling показывает мне, что «ViewPager» используется вместе с вкладками. Было бы хорошо (или даже возможно) использовать горизонтальный образец прокрутки без вкладок? –