0

Беру данные с апишки. Как мне вывести ListView через один? я думал все в один адаптер, а потом брать 2 разных item и в 2 разные адаптеры.

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

Serhii
  • 85
  • 1
    это обычный listview (или recicedView). Просто для вьюшек есть два разных layout. И в зависимости от индекса, показывается либо тот, либо другой. – KoVadim Sep 09 '16 at 07:52
  • так мне нужно список выводить один слева один справа...и т.д....как-то через один сделать – Serhii Sep 09 '16 at 07:54
  • просто в getView смотреть текущий индекс и делать условие if (index % 2 == 0) .... – KoVadim Sep 09 '16 at 07:55
  • 3
    Насколько я вижу, это один список. Просто половина элемента списка - это картинка – Vladyslav Matviienko Sep 09 '16 at 07:57
  • 1
    можно использовать RecyclerView с layout manager StaggeredGridLayoutManager – ZigZag Sep 09 '16 at 08:48
  • 1
    Это один список, просто картинка то слева, то справа. Для реализации такого списка нужно переопределить метод getItemViewType() – pavlofff Sep 09 '16 at 09:12

1 Answers1

1

Вам нужно создать 1 адаптер и 2 layout с разметкой: 1)левая картинка и текст "one_item_layout" 2)текст и правая картинка "two_item_layout"

Вот держите метод из адаптера (переделанный под вас), замените его.

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    if ( (position & 1) == 0 ) {
        //Вставляем лейаут с картинкой слева (если парное число position)
        convertView = layoutInflater.inflate(R.layout.one_item_layout, parent, false);
    } 
    else {
        //Вставляем лейаут с картинкой справа (если не парное число position)
        convertView = layoutInflater.inflate(R.layout.two_item_layout, parent, false);
    }

    return convertView;
}
Camel
  • 524
  • наверное, самое худшее решение, которое работает. Про recycling можно забыть. Это всеравно, что напихать все View сразу в ScrollView – Vladyslav Matviienko Sep 09 '16 at 12:27