169 похожих чатов

Всем привет. Столкнулся с одним не самым лучшим легаси проектом,

в нем практически во всех layout используется ConstraintLayout. Насколько это нормально, учитывая, что он и в layout для вью холдеров используется, и т.д.? Есть ли смысл упростить, перейти на Relative или простой Linear без вложенности? Не слишком тяжело с точки зрения производительности везде его пихать?

11 ответов

7 просмотров

relative раза в 3 медленее constraint начиная с 7 андройда (а до этого +- одинаково)

Зависит от самого лейаута. Если там можно впихнуть что-то проще с приемлемым уровнем вложенности то меняй. А менять constraint на большой linear с например 5 вложенными я бы не стал

интересный тезис. Есть замеры?

+ личный опыт. У меня в профиле огромный констеинт с 2 ресайклерами, вложенностью из-за textinputlayout и в целом на 3 полных скролла страница и 30% времени инфлейта занимает одна вью из либы которая написана на relative

в скрине сравниваются вложенные ViewGroup с Constraint (неверное сравнение) А то, что у Вас view'ха ифлейтится дольше экрана тоже тезис некорректный (во-первых это либа, во вторых в этой ViewGroup есть дочерние элементы)

Наоборот. ConstraintLayout - это монстр, который, если его неправильно применять, может привести даже к ANR.

ConstraintLayout это хорошо и модно, но нельзя им злоупотреблять. У ConstraintLayout главное чтобы была вложенность не глубже 1 уровня. Он для этого и придуман. Некоторые специалисты вкладывают несколько ConstraintLayout один в другой, а потом удивляются, откуда у них тормоза вплоть до ANR. В общем, если работает как надо, то ничего не трогай.

ConstraintLayout действительно быстрый. Был, когда был в альфе. Потом Гугл все исправил, и начиная с последних бета-версий превратил его в тормозного монстра.

Я вообще не понимаю как они приходят к мысли пихнуть в констреинт другой лейаут. Когда делаю ревью кода новых разработчиков у каждого я в первом коммите писал чтобы они убрали вложенные лейауты из констреинта

Потому что они знают, что всегда можно один лэйаут вложить в другой 😁

печально

Похожие вопросы

Обсуждают сегодня

Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
А чем вам питонисты не угодили?😂
.
79
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
79
А дин типизация это хорошо или плохо?
Alexey
12
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Hello. Could you please help me with finding all coordinates within a radius using a spatial index, given that I have a table with coordinates? SET @lng = 37.57925; SET @lat ...
Rinchin G
7
Карта сайта