Представление, которое может обрабатывать адаптеры, но не прокручивается

Существует ли представление, которое может обрабатывать адаптеры (например, ArrayAdapter), но не прокручивается?

Я не хотел бы вдаваться в обходные пути (например, отключение функции прокрутки ListView).


person Diolor    schedule 10.02.2014    source источник


Ответы (2)


Что вы можете. Вызов getView для адаптера возвращает View, который соответствует информации, полученной от метода getItem адаптера. Итак, вы можете сделать что-то вроде этого:

LinearLayout layout = (LinearLayout) view.findViewById(R.id.linear_layout);
BaseAdapter adapter = new CustomAdapter(context, itemList);

for (int i = 0; i < itemList.size(); i++) {
    // you can pass in a recycled view instead of null
    View itemView = adapter.getView(i, null, layout);
    layout.addView(itemView);
}

ViewGroups, такие как LinearLayout, сами по себе не прокручиваются, так что это должно работать. Я не уверен, почему вы хотите использовать Adapter в этой ситуации, но это на ваше усмотрение.

person b_yng    schedule 10.02.2014
comment
Это действительно приятно. Таким образом, в основном адаптеры — это массивы, содержащие представления. Чтобы ответить вам, зачем мне это нужно: я хотел бы реализовать quickreturn/scrolltricks но я также вызываю асинхронные функции (данные из БД). Я нашел готовую библиотеку QuickReturn для списков, но мой код стал очень грязным и чувствительным. Поэтому я хотел сделать его более легким. Спасибо большое. - person Diolor; 10.02.2014

Вы можете использовать следующее или обратиться к упомянутым ссылкам

listView.setScrollContainer(false);

Ссылки: отключить прокрутку ListView, содержащегося в ScrollView

Отключить прокрутку в списке

person Rachita Nanda    schedule 10.02.2014