Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
asttoxa
0 / 0 / 1
Регистрация: 25.10.2016
Сообщений: 62
#1

Как уменьшить количество layouts для RecyclerView - Программирование Android

05.11.2016, 19:51. Просмотров 302. Ответов 5
Метки нет (Все метки)

Здравствуйте уважаемые гуру, ситуация следующая:
Делаю список на RecyclerView, нашел как можно добавить header к списку. Но нигде не могу найти, как дергать примеры из одного layout файла к примеру по id RelativeLayout.

попытался сделать так в адаптере:
Java
1
2
3
 View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cv, viewGroup, false);
 View childV = v.findViewById(R.id.header);
 return new myAdapter.VHHeader(childV);
Начинает ругаться, что мол у вьюхи есть родитель. Я так понимаю нужно передавать корневую вьюху в RecyclerView.ViewHolder.

Что можно с этим сделать? Неужели делать на каждую строку (А у меня их планируется штук 6 разных) свой файл ресурса типа layout? Потому как в просторах инета везде пишут про отдельные файлы.

Заранее благодарю. Надеюсь понятно объяснил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2016, 19:51
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как уменьшить количество layouts для RecyclerView (Программирование Android):

Как сделать последний пустой элемент в RecyclerView для прокрутки
Доброго дня. Необходимо сделать сделать следующее поведение прокручиваемого...

Как сделать автоматическое добавление Layouts?
Есть такая разметка для андроид приложения: <RelativeLayout...

Android Studio: не пойму как размещать layouts и виджеты
Начинаю знакомство с программированием android в Android Studio. Начинаются...

Advanced RecyclerView и Expandable RecyclerView
Сделал expandable recycler view на основе advancedRecyclerView сборочки, но не...

RecyclerView внутри recyclerView
Добрый день. Хочу сделать список recyclerView c горизонтальной прокруткой,...

Как развернуть RecyclerView
Делаю свой месседжер и столкнулся с проблемой, как развернуть RecyclerView (на...

5
vanchous
1 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 22
06.11.2016, 02:47 #2
1 layot на все 6 строк, чем не устраивает?
0
asttoxa
0 / 0 / 1
Регистрация: 25.10.2016
Сообщений: 62
06.11.2016, 02:49  [ТС] #3
Они все не зависимы. И показываются или нет в зависимости от условий в Адаптере.
Если бы я хотел сделать header из 6 строк, я бы не обращался на форум
0
vanchous
1 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 22
06.11.2016, 03:01 #4
так а если в этот layout добавить 6 relativelayout и работать с visability в зависимости от условий в адаптере?)
остается все тот же 1 файл ресурса
0
shavuz
114 / 120 / 25
Регистрация: 29.01.2014
Сообщений: 596
06.11.2016, 11:18 #5
вообще то, да нужно делать на каждый отдельный обьект свой вью, потому что если вы будете открывать и закрывать обьекты во первых будет куча висибл инвизибл, а если сегодня 6 строк а завтра 8? то что нужно сделать это в листе с обьектами держать переменную которая будет отвечать за тип строки, это строку надо проверять в onCreateHeaderViewHolder и в онБаинд, в первом вы просто даете вью нужный хмл, а во втором делате свич с обьектами самого хмл который получили. и если когда нибудь появится еще строка, просто добавляете проверку на тип обьекта и добавляете в свич его обработку. - красиво, удобно, не сложно.
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,732
07.11.2016, 12:07 #6
Как уменьшить количество layouts для RecyclerView
Используйте ListView, если не требуются дополнительные возможности из RV. В LV есть важная вещь - там ViewHolder необязателен. Следовательно, все независимые элементы можно создавать без ViewHolder и задавать для них логику индивидуально. В этом огромный минус RV (а все пишут, что плюс, видать, не сталкивались, иначе бы не писали такого идиотизма).

Добавлено через 3 минуты
Цитата Сообщение от asttoxa Посмотреть сообщение
Они все не зависимы.
Создайте общий класс-предок с некоторыми свойствами и методами типа int getType . Туда будете писать числа (1, 2, ..., 6), которые означают вид объекта. Дальше создаёте 6 классов-наследников со своей логикой и дополнительными свойствами и событиями. Потом в адаптере делаете анализ getType и по нему делаете вывод нужного XML.
Всё это описано в некоторых статьях, как сделать RecyclerView с заголовками (секциями).
2
07.11.2016, 12:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2016, 12:07
Привет! Вот еще темы с решениями:

Как добавить RecyclerView в VKList?
Всем привет!!! Нужна помощь не знаю как добавить RecyclerView в VKList. Кто уже...

Подскажите как сделать в RecyclerView
Подскажите пожалуйста как сделать такой вывод в RecyclerView, чтобы записи...

Как отследить событие OnClick в RecyclerView
Есть адаптер: public class RecyclerAdapter extends RecyclerView.Adapter...

Как вы отображаете пустое состояние RecyclerView?
Обычно чтобы отобразить пустой список который предоставляет информацию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru