Я работаю над многомодальным приложением чата, где пользователи отправляют текстовые запросы, а чат-бот отвечает текстом, изображений и миниатюр. Одним из требований является отправка контекстной информации о том, что в настоящее время видно на экране на бэкэнд, включая границы видимых элементов. < /p>
Границы должны быть в пикселях, независимых от плотности (DP). < /p>
< /li>
Система координат возникает в верхнем левом углу чата частично видно, его границы должны быть обрезаны до
только видимой части. прямоугольник, заключающая видимую часть элемента.
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>
: эффективно отслеживает размер, но не предоставляет позицию.
Вопрос
< P> Что лучше подчеркивают альтернативы для отслеживания видимых границ вложенных элементов в JetPack Compose, без использования OngloballyPosed ? дорогие переоборудования будут оценены.
Я работаю над многомодальным приложением чата, где пользователи отправляют текстовые запросы, а чат-бот отвечает текстом, изображений и миниатюр. Одним из требований является отправка контекстной информации о том, что в настоящее время видно на экране на бэкэнд, включая границы видимых элементов. < /p> [list] [*] Границы должны быть в пикселях, независимых от плотности (DP). < /p> < /li> Система координат возникает в верхнем левом углу чата частично видно, его границы должны быть обрезаны до только видимой части. прямоугольник, заключающая видимую часть элемента.
[/list] [b] композиционная иерархия [/b] < Br />[code]ChatScreenComposable ├── UIFragmentsComposable │ ├── RequestFragmentsComposable (User request) │ ├── ResponseFragmentsComposable (Bot responses) │ ├── ChildFragmentsComposable (Bot images, thumbnails, etc.) < /code> [list] [*] Фрагмент корня представляет запрос пользователя. < /li> Фрагмент ответа содержит один или несколько ответов BOT (текст). Фрагмент корня может содержать несколько ответы. [/list] [b] текущий подход (используя OnGloballyPosited) [/b] В настоящее время я использую modifier.ongloballyposition [/code] on: [list] Фрагменты запроса < /li> Фрагменты ответа < /li> Детские фрагменты (внутри фрагменты ответа) < /li> < /ul> Я храню эти границы в карте и использую их позже при создании полезной нагрузки JSON для отправки в бэкэнд. < /p> [b] проблема [/b] Рецензент отметил, что OngloballyPosited ранее вызвал отставание при производительности прокрутки. < Strong> то, что я попробовал < /strong> < /p>
[code]onPlaced[/code]: рассмотрено, но у него также есть проблемы с производительностью. [*][code]LazyListState[/code]: он предоставляет информацию о видимости для фрагментов корней, но не отслеживает вложенные фрагменты (детские элементы внутри ответов). [*][code]onSizeChanged[/code]: эффективно отслеживает размер, но не предоставляет позицию. [/list] [b] Вопрос [/b]
< P> Что лучше подчеркивают альтернативы для отслеживания видимых границ вложенных элементов в JetPack Compose, без использования OngloballyPosed ? дорогие переоборудования будут оценены.