TopAppBar с сбоем в работе ScrollBehavior с HorizontalPager

У меня есть Scaffold с TopAppBar и HorizontalPager. Я хочу, чтобы TopAppBar сворачивался при вертикальной прокрутке содержимого HorizontalPager.

Посмотрите мой код:

@OptIn(ExperimentalMaterial3Api::class, ExperimentalFoundationApi::class)
@Composable
fun MainScreen() {
    val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(rememberTopAppBarState())

    Scaffold(
        modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
        topBar = {
            CenterAlignedTopAppBar(
                title = { Text("Lagging Demonstration") },
                scrollBehavior = scrollBehavior
            )
        },
    ) { innerPadding ->

        val loremIpsum = LoremIpsum(1000)
        val pagerState = rememberPagerState(pageCount = { 3 })

        HorizontalPager(
            modifier = Modifier.padding(innerPadding),
            state = pagerState
        ) { page ->
            Column(
                modifier = Modifier.verticalScroll(rememberScrollState())
            ) {
                Text(
                    text = loremIpsum.values.joinToString(),
                    modifier = Modifier.fillMaxWidth()
                )
            }
        }
    }
}

С помощью этого кода я заметил, что TopAppBar странно прыгает при прокрутке вверх:

Мои зависимости определяются следующим образом:

implementation "androidx.compose.ui:ui:1.6.2'
implementation 'androidx.compose.material3:material3:1.2.0'
implementation 'androidx.activity:activity-compose:1.8.2'

Я нашел эту проблему в Google Issue Tracker, где предлагалось применить модификатор nestedScroll(scrollBehavior.nestedScrollConnection) к Column, однако в моем случае это не помогло.

Есть ли обходной путь для устранения этого поведения?


Если вам удалось воспроизвести проблему, проголосуйте за проблему в Google Issue Tracker.

1
0
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Эта проблема была решена с помощью Compose Version 1.7 (beta02).
Если вы соответствующим образом обновите свои зависимости, это будет работать.

Другие вопросы по теме