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

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

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

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

27.05.2016, 13:20. Просмотров 351. Ответов 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?
FireBase + RecyclerView| как обновить список, после удаления item из базы? Android
RecyclerView создание Item Click Listener Android
Не могу обновить RecyclerView после изменения item Android
Android RecyclerView| LongClick| set(View.VISIBLE) на выбранном item?
Android Как подгонять размер диалоговых окон по размер экрана?
Фиксированный Footer внизу экрана в RecyclerView Android
Android Как автоматически изменять размер текста в spinner в зависимости от размера экрана?
Android Как сделать так, чтобы мобильное приложение автоматически подстраивалось под размер экрана?
Android Advanced RecyclerView и Expandable RecyclerView
Android Физический размер экрана
Android Как развернуть RecyclerView

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2421 / 1866 / 583
Регистрация: 12.05.2014
Сообщений: 6,606
Завершенные тесты: 1
27.05.2016, 13:31     RecyclerView создает Item на размер экрана, как исправить? #2
а где разметка R.layout.cardview и разметка в которой плавает recycler view?
amasaemi
9 / 9 / 3
Регистрация: 22.08.2015
Сообщений: 108
27.05.2016, 13:36  [ТС]     RecyclerView создает Item на размер экрана, как исправить? #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,724
27.05.2016, 13:51     RecyclerView создает Item на размер экрана, как исправить? #4
amasaemi, меня, кстати, всё время в Андроиде удивляло, что высоты match_parent и wrap_content давали одинаковый результат. Хорошо, что эту логику поправили в новой версии.
Yandex
Объявления
27.05.2016, 13:51     RecyclerView создает Item на размер экрана, как исправить?
Ответ Создать тему
Опции темы

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