этот фрагмент кода выполняет бесконечную рекомпозицию при прокрутке , не могу понять почему?
Как управлять состоянием и анимацией в HorizontalPager в Jetpack Compose?
Я работаю с Jetpack Compose и пытаюсь создать собственный диалоговый пользовательский интерфейс, включающий HorizontalPager. Я использую ComposeView внутри MainActivity для отображения этого пользовательского интерфейса, но у меня возникают проблемы с управлением состоянием, анимацией и начальной настройкой страницы.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val compose = findViewById(R.id.composeErrorScreen)
compose.apply {
visibility = VISIBLE
setContent {
val dialogContentState by remember {
mutableStateOf(
CardsScreenUi(
2, // initialCard
listOf(2, 3, 4) // cardsList
)
)
}
Box(
modifier = Modifier
.fillMaxSize()
.background(Color.Transparent),
contentAlignment = Alignment.BottomEnd
) {
DialogContent(dialogContentState)
}
}
}
}
}
Здесь я добавляю компоновку с помощью JetPack Compose
internal data class CardsScreenUi(
val initialCard: Int,
val cardsList: List
)
@Composable
internal fun BoxScope.DialogContent(
dialogContentState: CardsScreenUi?,
) {
Log.d("[Testing]", "Starting ")
Column(
modifier = Modifier.align(Alignment.Center),
horizontalAlignment = Alignment.CenterHorizontally
) {
dialogContentState?.let { data ->
val (initialCard, cardsList) = data
val pagerState = rememberPagerState(
pageCount = {
cardsList.size
}
)
val screenWidth = LocalConfiguration.current.screenWidthDp.dp
val pageWidth = remember { 300.dp }
val sidePadding = remember { (screenWidth - pageWidth) / 2 }
HorizontalPager(
state = pagerState,
pageSpacing = 12.dp,
pageSize = PageSize.Fixed(pageWidth),
contentPadding = PaddingValues(horizontal = sidePadding)
) { page ->
// Page content can go here (e.g., display card content)
}
Spacer(modifier = Modifier.height(22.dp))
DotStepper(count = pagerState.pageCount, count2 = pagerState.currentPage)
}
}
}
@Composable
fun DotStepper(count: Int, count2: Int) {
Log.d("[Testing]", "Horizontal Pager $count and ${count2}")
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ager-state
Попал в бесконечную рекомпозицию из-за состояния пейджера горизонтального пейджера ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
LazyColumn внутри горизонтального пейджера не работает должным образом
Anonymous » » в форуме Android - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-
-
-
LazyColumn внутри горизонтального пейджера не работает должным образом
Anonymous » » в форуме Android - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
LazyColumn внутри горизонтального пейджера не работает должным образом
Anonymous » » в форуме Android - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-