Эффективно отслеживать границы фрагментов композиции на экране в Android без OnGloballyPosedAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Эффективно отслеживать границы фрагментов композиции на экране в Android без OnGloballyPosed

Сообщение Anonymous »

Я работаю над многомодальным приложением чата, где пользователи отправляют текстовые запросы, а чат-бот отвечает текстом, изображений и миниатюр. Одним из требований является отправка контекстной информации о том, что в настоящее время видно на экране на бэкэнд, включая границы видимых элементов. < /p>
  • Границы должны быть в пикселях, независимых от плотности (DP). < /p>
    < /li>
    Система координат возникает в верхнем левом углу чата частично видно, его границы должны быть обрезаны до
    только видимой части. прямоугольник, заключающая видимую часть элемента.
композиционная иерархия < Br />

Код: Выделить всё

ChatScreenComposable
├── UIFragmentsComposable
│   ├── RequestFragmentsComposable  (User request)
│   ├── ResponseFragmentsComposable (Bot responses)
│       ├── ChildFragmentsComposable (Bot images, thumbnails, etc.)
< /code>
[list]
[*] Фрагмент корня представляет запрос пользователя. < /li>
 Фрагмент ответа содержит один или несколько ответов BOT (текст). Фрагмент корня может содержать несколько ответы. [/list]
[b] текущий подход (используя OnGloballyPosited) [/b] 
В настоящее время я использую modifier.ongloballyposition 
on:
  • Фрагменты запроса < /li>
    Фрагменты ответа < /li>
    Детские фрагменты (внутри фрагменты ответа) < /li>
    < /ul>
    Я храню эти границы в карте и использую их позже при создании полезной нагрузки JSON для отправки в бэкэнд. < /p>
    проблема
    Рецензент отметил, что OngloballyPosited ранее вызвал отставание при производительности прокрутки.
    < Strong> то, что я попробовал < /strong> < /p>

    Код: Выделить всё

    onPlaced
    : рассмотрено, но у него также есть проблемы с производительностью.
  • Код: Выделить всё

    LazyListState
    : он предоставляет информацию о видимости для фрагментов корней, но не отслеживает вложенные фрагменты (детские элементы внутри ответов).
  • Код: Выделить всё

    onSizeChanged
    : эффективно отслеживает размер, но не предоставляет позицию.
Вопрос

< P> Что лучше подчеркивают альтернативы для отслеживания видимых границ вложенных элементов в JetPack Compose, без использования OngloballyPosed ? дорогие переоборудования будут оценены.

Подробнее здесь: https://stackoverflow.com/questions/794 ... android-wi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»