заблокированный пользовательский интерфейс, какой совет можно использовать, чтобы уменьшить задержку пользовательского интерфейса, приложение android? - PullRequest
0 голосов
/ 21 января 2020

Я новичок в android, разрабатываю , и я нахожусь на своем пути разработки моего первого приложения с использованием архитектуры MVVM Все работает правильно, и я закончил приложение, и оно готово к используйте единственную проблему с ним - это одно из его действий занимает слишком много времени для отображения , а пользовательский интерфейс занимает от 4 до 5 секунд - для ответов, и это заставляет меня смущаться развертывать его действие тяжело загружать и взаимодействовать с - это основное действие в приложении, и большинство приложений посвящено этому

Я сделал все, что нужно, чтобы этот класс действий выполнял меньше работы, и дал остальное работы (логика и тому подобное) для класса модели представления, но он все еще тяжел и взаимодействие настолько тяжелое

Я искал в net и на этом веб-сайте, и я нашел несколько советов

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

Другой совет касается макета xml file

. Они сказали, что для построения линейного и сеточного макета требуется так много времени, чтобы масштабировать дочерний макет внутри него, и он может блокировать пользовательский интерфейс

. это то, что меня не заботило, когда я впервые создавал и проектировал представления , поэтому я много использовал «include», и я использовал его с большим количеством линейного и сеточного макетов в качестве дочерних представлений Кроме того что я использовал ограничение соответствия в некотором макете ограничения

Это небольшая диаграмма, которая показывает, как я построил свой пользовательский интерфейс

, диаграмма показывает, как я проектировал пользовательский интерфейс

один из макетов xml показывает, как я использовал тег включения

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnCount="1"
android:rowCount="6">


<include
    android:id="@+id/first"
    layout="@layout/day_node_calendar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_rowWeight="1"
    android:layout_gravity="center"></include>

<include
    android:id="@+id/second"

    layout="@layout/day_node_calendar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_rowWeight="1"
    android:layout_gravity="center"></include>

<include
    android:id="@+id/third"

    layout="@layout/day_node_calendar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_rowWeight="1"
    android:layout_gravity="center"></include>

<include
    android:id="@+id/fourth"

    layout="@layout/day_node_calendar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_rowWeight="1"
    android:layout_gravity="center"></include>

<include
    android:id="@+id/fifth"

    layout="@layout/day_node_calendar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_rowWeight="1"
    android:layout_gravity="center"></include>

<include
    android:id="@+id/sixth"

    layout="@layout/day_node_calendar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_rowWeight="1"
    android:layout_gravity="center"></include>

Решение, которое я хочу попробовать, состоит в том, чтобы изменить макеты с линейного и сеточного в Относительный и ограниченный макет Или используйте пользовательское представление для построения каждого узла, затем включите его в основной макет или просто сократите использование линейного макета. Поэтому мой вопрос в том, какое из решений будет мне полезно ell И если у вас есть какое-то предложение, я буду так рад, если вы скажете мне и приведете меня к лучшему решению

...