Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
amasaemi
9 / 9 / 3
Регистрация: 22.08.2015
Сообщений: 108
#1

RecyclerView создает Item на размер экрана, как исправить? - Программирование Android

27.05.2016, 13:20. Просмотров 389. Ответов 3
Метки нет (Все метки)

Аномалии, сменил версию RecyclerView с 21.0.+ на 23.3.0. Теперь он создает 1 элемент на весь размер экрана. Т.е элемент CardView создается сверху, а все остальное поле до следующего элемента просто белое. Если откатить версию до 21.0.+, то будет все нормально (но мне нужна более свежая, из за наличия addOnScrollListener). Вот код разметки и адаптера. В чем может быть проблема?

XML
1
2
3
4
5
6
7
<android.support.v7.widget.RecyclerView
            android:id="@+id/recycleView"
            android:layout_marginLeft="@dimen/fivedp"
            android:layout_marginRight="@dimen/fivedp"
            android:layout_marginBottom="@dimen/fivedp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder> {
        ArrayList<EasyEXMItem> list;
 
        public CardAdapter(ArrayList<EasyEXMItem> list){
            if (list == null)
                list = new ArrayList<>();
            this.list = list;
        }
 
        @Override
        public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
            View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cardview, viewGroup, false);
            return new CardAdapter.ViewHolder(v);
        }
 
        @Override
        public void onBindViewHolder(CardAdapter.ViewHolder holder, int position) {
            try{
                holder.title.setText(elements.get(position).title);
                Glide.with(Show.this).load(elements.get(position).image).into(holder.poster);
            } catch (IndexOutOfBoundsException e){
                Log.d("Index", String.valueOf(position));
            }
        }
 
        @Override
        public int getItemCount() {
            return (null != list ? list.size() : 0);
        }
 
        public ArrayList<EasyEXMItem> getList(){
            return list;
        }
 
        class ViewHolder extends RecyclerView.ViewHolder {
 
            public ImageView poster;
            public TextView title;
            public CardView cardView;
 
            public ViewHolder(View itemView) {
                super(itemView);
                itemView.setOnClickListener(this);
                poster = (ImageView)itemView.findViewById(R.id.poster);
                title = (TextView)itemView.findViewById(R.id.titleFirst);
                cardView = (CardView)itemView.findViewById(R.id.cardView);
            }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2016, 13:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос RecyclerView создает Item на размер экрана, как исправить? (Программирование Android):

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

FireBase + RecyclerView| как обновить список, после удаления item из базы? - Программирование Android
Добрый всем день! есть метод который удаляет айтем (значения items берутся из FireBase): public void DelPos(View v){ ...

RecyclerView создание Item Click Listener - Программирование Android
Здравствуйте. Недавно начал изучать Android. Дошел до изучения RecyclerView. Научился создавать RecyclerView и отображать там данные из БД....

Не могу обновить RecyclerView после изменения item - Программирование Android
данные для списка берутся из Firebase, у DatabaseReference//Firebase, есть два метода: onChildAdd и onChildChanged, первый...

RecyclerView| LongClick| set(View.VISIBLE) на выбранном item? - Программирование Android
Добрый день! подскажите пожалуйста как показать вьюшку только в той позиции item'а на которой сделали LongClick ? вьюшка...

Как подгонять размер диалоговых окон по размер экрана? - Программирование Android
Здравствуйте! Как подгонять размер диалоговых окон по размер экрана? У меня есть класс, унаследованный от DialogFragment. При запуске...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Pablito
2470 / 1915 / 595
Регистрация: 12.05.2014
Сообщений: 6,740
Завершенные тесты: 1
27.05.2016, 13:31 #2
а где разметка R.layout.cardview и разметка в которой плавает recycler view?
amasaemi
9 / 9 / 3
Регистрация: 22.08.2015
Сообщений: 108
27.05.2016, 13:36  [ТС] #3
Цитата Сообщение от Паблито Посмотреть сообщение
а где разметка R.layout.cardview и разметка в которой плавает recycler view?
Все, исправил. В разметке с CardView поменял параметр LinearLayout c android:layout_height="match_parent" на wrap_content. Странно, что в предыдущей версии RecyclerView данной проблемы не возникало.
Забавно, с такой проблемой всю ночь провозиться)
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
27.05.2016, 13:51 #4
amasaemi, меня, кстати, всё время в Андроиде удивляло, что высоты match_parent и wrap_content давали одинаковый результат. Хорошо, что эту логику поправили в новой версии.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2016, 13:51
Привет! Вот еще темы с ответами:

Фиксированный Footer внизу экрана в RecyclerView - Программирование Android
Как добавить фиксированный Footer в RecyclerView, чтобы скрол списка не влиял на этот Footer(то есть Footer всегда показывается внизу...

Как автоматически изменять размер текста в spinner в зависимости от размера экрана? - Программирование Android
Здравствуйте. В программе использую две темы светлую и темную: &lt;style name=&quot;BlackTheme&quot; parent=&quot;android:style/Theme.Holo&quot;&gt; &lt;item...

Как сделать так, чтобы мобильное приложение автоматически подстраивалось под размер экрана? - Программирование Android
В Android Studio мы же под определенную диагональ создаём приложение (один эмулятор).. Как при разработке сделать так, чтобы мобильное...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.05.2016, 13:51
Ответ Создать тему
Опции темы

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