remember {
derivedStateOf {
swipeState.offset.value
}
}
val swipeModifier = Modifier.swipeable(
state = swipeState,
anchors = anchors,
thresholds = { _, _ ->
FixedThreshold(150.dp)
},
orientation = Orientation.Vertical,
velocityThreshold = Float.POSITIVE_INFINITY.dp,
interactionSource = interactionSource
)
Box(modifier = Modifier
.graphicsLayer {
translationY = swipeOffset
}
.fillMaxWidth()
.height(heightDp)
) {
//тут происходит рекомпозиция
}
Внутри Box при свайпе происходит рекомпозиция. При этом сам свайп как будто чутка подтормаживает.
Есть несколько вопросов
1) Можно ли избежать этой рекомпозиции?
2) А нужно ли ее вообще избегать или это нормально и тормоза связаны не с этим?
если тормозит в дебаг режиме, это норма, если в релизе — нет. насчёт рекомпозиции, кастомный модифаер следует обернуть в composed { }
А где кастомный Modifier тут?
показалось, что у него swipeModifier кастомный. тогда с этим проблем нет, всё ок
swipeModifier передается там дальше в контейнер внутренний, который в box ну и он не кастомный, swipeable определен уже
Обсуждают сегодня