Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
amasaemi
9 / 9 / 5
Регистрация: 22.08.2015
Сообщений: 108
#1

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

27.05.2016, 13:20. Просмотров 791. Ответов 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);
            }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2016, 13:20
Ответы с готовыми решениями:

Как обновить список RecyclerView после добавления item?
Как обновить список RecyclerView после добавления item? список RecyclerView...

FireBase + RecyclerView| как обновить список, после удаления item из базы?
Добрый всем день! есть метод который удаляет айтем (значения items берутся...

RecyclerView создание Item Click Listener
Здравствуйте. Недавно начал изучать Android. Дошел до изучения RecyclerView....

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

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

3
Pablito
2707 / 2154 / 731
Регистрация: 12.05.2014
Сообщений: 7,517
Завершенные тесты: 1
27.05.2016, 13:31 #2
а где разметка R.layout.cardview и разметка в которой плавает recycler view?
0
amasaemi
9 / 9 / 5
Регистрация: 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 данной проблемы не возникало.
Забавно, с такой проблемой всю ночь провозиться)
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,732
27.05.2016, 13:51 #4
amasaemi, меня, кстати, всё время в Андроиде удивляло, что высоты match_parent и wrap_content давали одинаковый результат. Хорошо, что эту логику поправили в новой версии.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2016, 13:51

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

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

Как автоматически изменять размер текста в spinner в зависимости от размера экрана?
Здравствуйте. В программе использую две темы светлую и темную: &lt;style...


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

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

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