использование constraiintLayout в рекуператоре с запаздыванием - PullRequest
0 голосов
/ 16 апреля 2020

В RecyclerView есть элемент, который использует плоские ограничения.

Заметил, что прокрутка запаздывает и пытается определить причину.

Измерено, что onBindingViewHolder (), похоже, не замедляется около 10 мс.

Но между двумя элементами onBindingViewHolder (), когда продолжается прокрутка, иногда требуется около ~ 100 мс.

Пытаясь посмотреть с помощью профилировщика, кажется, что те, которые занимают больше времени, находятся в вызовах os.

Вопрос

  1. Есть ли способ определить, какая часть может вызвать Вызов os занимает много времени?
  2. В ограничении, поскольку представление является динамическим c, оно использует ограничение как
    <View
        android:id="@+id/_container"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="10dp"
        android:layout_marginTop="10dp"
        android:layout_marginEnd="10dp"
        android:layout_marginBottom="10dp"
        android:visibility="gone"
        app:layout_constraintBottom_toTopOf="@+id/_top_item"
        app:layout_constraintDimensionRatio="H,15:9"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="@+id/_left_guideline"
        app:layout_constraintTop_toBottomOf="@+id/_bottom_content"
        app:layout_goneMarginBottom="8dp"

        />

и дочерние элементы "внутри", которые он будет использовать это граница для выравнивания влево / вправо, динамически основанная, кто виден или нет, что-то в этом роде. Приведет ли задержка измерения Dynami c к задержке?

Является ли constraitlayout неэффективным, если при использовании в recyclerView, видел несколько сообщений об этом?

enter image description here

...