Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
asttoxa
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 62
#1

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

05.11.2016, 19:51. Просмотров 270. Ответов 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 для прокрутки - Программирование Android
Доброго дня. Необходимо сделать сделать следующее поведение прокручиваемого списка. Описать словами и представить это можно следующим...

Advanced RecyclerView и Expandable RecyclerView - Программирование Android
Сделал expandable recycler view на основе advancedRecyclerView сборочки, но не важно это думаю, наследуется от обычного RecyclerView. ...

Как сделать автоматическое добавление Layouts? - Программирование Android
Есть такая разметка для андроид приложения: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

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

RecyclerView внутри recyclerView - Программирование Android
Добрый день. Хочу сделать список recyclerView c горизонтальной прокруткой, который отображает допустим 20 элементов(card). Т.е....

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

5
vanchous
1 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 22
06.11.2016, 02:47 #2
1 layot на все 6 строк, чем не устраивает?
0
asttoxa
0 / 0 / 0
Регистрация: 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 / 23
Регистрация: 29.01.2014
Сообщений: 596
06.11.2016, 11:18 #5
вообще то, да нужно делать на каждый отдельный обьект свой вью, потому что если вы будете открывать и закрывать обьекты во первых будет куча висибл инвизибл, а если сегодня 6 строк а завтра 8? то что нужно сделать это в листе с обьектами держать переменную которая будет отвечать за тип строки, это строку надо проверять в onCreateHeaderViewHolder и в онБаинд, в первом вы просто даете вью нужный хмл, а во втором делате свич с обьектами самого хмл который получили. и если когда нибудь появится еще строка, просто добавляете проверку на тип обьекта и добавляете в свич его обработку. - красиво, удобно, не сложно.
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
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 - Программирование Android
Подскажите пожалуйста как сделать такой вывод в RecyclerView, чтобы записи заполняли пустое место - примеры на скринах 1 - скин как...

Как создать RecyclerView c передвигаемыми элементами? - Программирование Android
Как создать RecyclerView c элементами которые можно как бы вытаскивать из списка и вставить на другую позицию? Не копирование / вставка,...

Как отследить событие OnClick в RecyclerView - Программирование Android
Есть адаптер: public class RecyclerAdapter extends RecyclerView.Adapter <RecyclerAdapter.ViewHolder>{ TextView info; ...

Как обновить список RecyclerView после добавления item? - Программирование Android
Как обновить список RecyclerView после добавления item? список RecyclerView в DialogFragment, из контактов добавляется номер который...


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

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

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