@android_ru

Страница 3187 из 3205
Artem
25.05.2018
07:36:37
это особенно выедает глаза в списках, когда быстро листаешь, все вьюшки есть, а потом исчезают лишние

Dmitriy
25.05.2018
07:37:03
https://stackoverflow.com/questions/44420396/use-data-binding-to-set-view-visibility

Но мне кажется со списком это не решит проблему, так как при переиспользовании viewHolder'ов он не будет пересоздавать вьюху а значит дефолт возвращать не будет. Хотя я может чего то не знаю о биндинге

Google
Сергей
25.05.2018
07:41:10
а если нужно показать делай инсерт в списк и нотифай

Artem
25.05.2018
07:41:54
когда-то слышали запах костылей?

Сергей
25.05.2018
07:42:44
запах костылей это когда ты пытаешься сделать вьюхолдер невидимым

Dmitriy
25.05.2018
07:43:24
Мне казалось что он пытается скрыть что то внутри итема, а не сам итем

balolam
25.05.2018
07:43:50
Делать итем невидимым - глупость

Просто удали

Dmitriy
25.05.2018
07:44:20
Например есть в элементе списка картинка, которая показывает что это новая запись или нет, и взависимости от флага в моделе который на это указывает нужно ее скрыть или показать

Dmitriy
25.05.2018
07:45:23
Ну тогда то что я скинул, то бишь default добавь

Сергей
25.05.2018
07:45:30
значит видимость элемнета нужно менять не в бинде а до него

Dmitriy
25.05.2018
07:46:07
Ну и видимо в onDetachViewHolder - делать gone принудительно, иначе при переиспользовании холдера он тебе сохранит его стейт и также будет мигать

Artem
25.05.2018
07:47:01
спасибо всем)

Google
balolam
25.05.2018
07:48:46
А почему вообще мигание? Там же заполнение происходит раньше чем элемент будет виден на экране

Может проблема в другом

Или у вас там анимация

Dmitriy
25.05.2018
07:50:33
Я думаю проблема в этом

Ну и видимо в onDetachViewHolder - делать gone принудительно, иначе при переиспользовании холдера он тебе сохранит его стейт и также будет мигать

balolam
25.05.2018
07:51:36
Нет, в смысле почему мигание. Т.е. вьюха же будет заполнена до показа на экране, мигания быть в принципе не должно

А я о корне проблемы

Сергей
25.05.2018
07:52:22
костыль в том чтобы очищать состояние вьюхи в onDetach?

окей

тогда программироавние под андроид - костыль

Dmitriy
25.05.2018
07:52:54
Это не костыль, без тех же вью моделей и биндингов если вы в списке будете отображать изображения, которые грузятся из сети, и не будете очищать или делать еще что нибудь чтобы перед загрузкой сбрасывать старое изображение с вьюхи - то будет веселое мигание картинок

Ну и на самом деле я не силен в специфики биндинга, но что то мне подсказывает, что переиспользование ресайклером ранее созданного viewHolder'a приводит к тому что вьюха отображается ранее чем происходит новым биндинг

Андрей
25.05.2018
07:54:46
Dmitriy
25.05.2018
07:54:55
))))

Artem
25.05.2018
08:05:38
мигание потому что вьюха отображаеться, а потом происходит проверка условие defaul помог)

Artem
25.05.2018
08:07:53
это по документации так)) но оно мигало, мазафака... Мы все знаем что в андроиде есть много бочин. Дефоулт параметр есть не просто так

Сергей
25.05.2018
08:08:13
если моргает значит у тебя биндинг кривой

либо ты его делаешь методом add и не удаляешь в детаче, в следствие чего у тебя биндинг делается столько раз сколько раз переиспользовалась вьюшка

Google
Сергей
25.05.2018
08:09:12
либо что то еще

для этого существует отладчик, чтобы не гадать на кофейной гуще

Андрей
25.05.2018
08:12:56
кто-нибудь сталкивался с проблемой, когда в recyclerView onBindViewHolder отрабатывает для ВСЕХ элементов при первоначальном добавлении?

при этом если их 300, то реально рендерятся ВСЕ сразу

Nikita
25.05.2018
08:13:10
помогите плз разобраться почему не отображается текст hint, если поле ввода не в фокусе, <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:hintTextAppearance="@style/MyHintText"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/Title" android:theme="@style/MyEditText" /> </android.support.design.widget.TextInputLayout>. все стили пописаны

Андрей
25.05.2018
08:13:12
что само собой баг

Сергей
25.05.2018
08:14:26
что само собой баг
recycler у тебя растягивается по ширине всего контента а не по ширине экрана

Андрей
25.05.2018
08:14:44
Dmitriy
25.05.2018
08:15:02
А можно верстку экрана с ним увидеть?

Андрей
25.05.2018
08:15:05
recyclerview инфлейтится в отдельном лейауте

Nikita
25.05.2018
08:16:09
Андрей
25.05.2018
08:16:24
А можно верстку экрана с ним увидеть?
<RelativeLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen_container" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerInParent="true" android:layout_margin="0dp" android:focusable="true" android:focusableInTouchMode="true" android:gravity="center_vertical|center_horizontal|center" android:orientation="vertical" android:padding="10dp"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="place holder" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout>

Dimitrios
25.05.2018
08:16:39
Как правильно удалять элемент из ListView or RecyclerView?

Андрей
25.05.2018
08:16:46
вот в screen_container в рантайме инфлейтится отдельный лэйаут

вот такой

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".activities.MainActivity"> <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <include layout="@layout/common_screen_title" /> <include layout="@layout/delimeter_hor" /> </LinearLayout> <android.support.v7.widget.RecyclerView android:id="@+id/scr_order_list" android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="1"/> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:orientation="horizontal"> <Button android:theme="@style/WhiteButton" android:id="@+id/scr_metaorder_btn_start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/scr_orders_btn_metaorder" /> <Button android:theme="@style/WhiteButton" android:id="@+id/scr_metaorder_btn_finish" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/scr_orders_btn_finish" /> </LinearLayout> </LinearLayout>

то есть

никаких scrollView нет

Google
Андрей
25.05.2018
08:17:40
вообще

Сергей
25.05.2018
08:17:45
android:layout_height="0dip"

вот причина

Dmitriy
25.05.2018
08:18:24
Зачем вес задан и почему 0dip

Андрей
25.05.2018
08:18:35
потому что ниже еще лэйаут с кнопками

Сергей
25.05.2018
08:18:58
Зачем вес задан и почему 0dip
0dp нужно ставить если задаешь вес, сама студия об этом подсказывает, но для ресайклера так делать нельзя

Андрей
25.05.2018
08:19:21
хм, окей, избавлюсь от этого тогда

Dmitriy
25.05.2018
08:19:25
Так у него один элемент только с весом и weightsum не указан

Там вообще жопа, лучше уж констраинт или на крайний случай релатив заюзать для такого отображения как нужно

Андрей
25.05.2018
08:20:56
не

другие элементы закомментил

вес убрал

поставил высоту в match parent

результат тот же

Сергей
25.05.2018
08:21:31
вес убрал?

Лёша
25.05.2018
08:21:34
Как правильно удалять элемент из ListView or RecyclerView?
Удалить сперва из списка, где хранишь данные для отображения, потом notifyItemRemoved()(в случае с recyclerview) у адаптера а вообще это гуглится запросом в три слова

Андрей
25.05.2018
08:23:02
вес убрал?
ну теперь лэйаут который инфлейтится такой

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".activities.MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/scr_order_list" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>

Roman
25.05.2018
08:23:14
про gist., pastebin - не, не слышали?

Google
Сергей
25.05.2018
08:23:45
а как ты инфлейт делаешь?

Dmitriy
25.05.2018
08:24:03
Кстати, откуда уверенность что все отрисовывает?

Dimitrios
25.05.2018
08:29:31
Андрей
25.05.2018
08:30:16
Кстати, откуда уверенность что все отрисовывает?
onbindviewholder дергается для всех элементов, в логе глянул

при этом это занимает около 6 секунд

а как ты инфлейт делаешь?
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View root = inflater.inflate(screenLayoutId, this, true);

Dmitriy
25.05.2018
08:32:12
Странно Это, я такой баг встречал только если ресайклер положить в скролл контейнер, тогда начинается такая фигня, он просто создает холдеры а не переиспользует их

Андрей
25.05.2018
08:33:23
да вообще странно, 2 дня с этим сижу

при этом обнаружил что у одного чувака был такой баг из-за бага в саппортовской либе

но мне откат не помог

Игорь
25.05.2018
08:33:59
Ребят подскажите библиотеку или хотя бы поисковой запрос для поиска библиотеки, которая генерит картинку (аватар) по первым буквам textView( инициалы пользователя)

Dmitriy
25.05.2018
08:34:58
но мне откат не помог
Вопрос, а у вас итемы в момент добавления имеют хоть какую то высоту или нет? То есть возможно все содержимое элемента gone, Вот он и создает их чтобы заполнить всю область видимости

Игорь
25.05.2018
08:35:21
TextDrawable
Спасибо огромное

Андрей
25.05.2018
08:35:29
и да, они сразу видны

это вообще не помогло

Сергей
25.05.2018
08:36:57
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View root = inflater.inflate(screenLayoutId, this, true);
я не уверен что ты правильно инфлейт делаешь, по крайней мере параметры меня смущают

Dmitriy
25.05.2018
08:37:27
Еще вопрос, в самой первой вьюху у вас релатив имеет ширину ноль и вес, а куда он вкладывается?

Dmitriy
25.05.2018
08:38:59
А можно тогда еще верстку где тот рут линеар?

Страница 3187 из 3205