Проблема с модификатором GraphicsLayer во фрагментах ViewPager2 с использованием Jetpack ComposeAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с модификатором GraphicsLayer во фрагментах ViewPager2 с использованием Jetpack Compose

Сообщение Anonymous »

Я работаю над проектом Android, который использует ViewPager2 для размещения фрагментов, каждый из которых содержит представление с Jetpack Compose в корне. В этих представлениях Compose я применяю Modifier.graphicsLayer, который принимает лямбда-выражение в качестве параметра для выполнения переводов в представлении.
Проблема, с которой я сталкиваюсь, заключается в том, что при переключении фрагментов в ViewPager2 лямбда-функция, переданная модификатору GraphicsLayer, больше не вызывается. Это приводит к тому, что переводы не применяются должным образом, когда я возвращаюсь к фрагменту.
Вот упрощенная версия моей настройки:

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

@Composable
fun MyComposeView() {
Box(
modifier = Modifier
.fillMaxSize()
.graphicsLayer {
translationX = // some calculation
translationY = // some calculation
}
) {
// Content
}
}
В моем фрагменте:

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

class MyFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return ComposeView(requireContext()).apply {
setContent {
MyComposeView()
}
}
}
}
Кто-нибудь сталкивался с подобной проблемой или знает, почему лямбда-выражение в модификаторе GraphicsLayer не вызывается после изменения фрагмента? Есть какие-нибудь предложения о том, как обеспечить, чтобы лямбда продолжала вызываться при повторном посещении фрагмента?
Заранее спасибо за вашу помощь!
Вот пример -> https://github .com/BenjaminBihr/Sample/tree/main

Подробнее здесь: https://stackoverflow.com/questions/786 ... ck-compose
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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