У меня есть серия сложных представлений, отображаемых на экране, и мне также требуется динамически переключаться между представлениями во время выполнения, которое я делаю, удаляя представления и добавляя новые виды (когда-то только установив ОТОБРАЖЕНИЕ).Просмотр очень медленно отображается на эмуляторе и устройстве
Теперь проблема заключается в том, что виды занимают чрезвычайно большое количество времени (более 7-8 секунд).
Я поставил метки времени в своих методах, и все они, кажется, вернулись довольно быстро. Но даже после того, как последний из моих методов вернется, представление не отображается, и я должен ждать, чтобы увидеть его на самом деле. После этого пользовательский интерфейс довольно не отвечает, и я довольно часто получаю ANR
.
Может кто-нибудь указать, почему это так вяло?
Я загружаю много изображений из файловой системы во время выполнения, используя Drawable.createFromPath()
. Это может быть проблема?
Нет другой активности, не связанной с ui. Фактически, я удалил все и просто попытался раздуть макеты. Сама компоновка занимает огромное количество времени. – user1027742
Я нашел решение для того же самого и отправляю его для тех, кто сталкивается с подобными проблемами. Проблема была связана с глубоким вложением взглядов. Поскольку макет был довольно сложным, взгляды были достаточно глубокими. И после определенного уровня 14-15 производительность резко ухудшается. При слиянии некоторых макетов макета (держатели места и т. Д.) Производительность была значительно улучшена. Средство просмотра иерархии было очень полезно при отладке этой проблемы. – user1027742
Вместо того, чтобы публиковать ответ в качестве комментария, вы можете разместить его в качестве ответа на свой вопрос, и вы можете отметить этот ответ в качестве принятого решения. Будет полезно для другого пользователя. –