Я создаю диалоговое окно создания Jetpack, содержащее столбец, в котором все элементы всегда должны быть видимы, за исключением третьего элемента, который представляет собой текст, который должен прокручиваться, если текст не умещается на экране. Я почти добился этого с помощью вторичного прокручиваемого столбца только для этого текстового элемента. Однако эта реализация выталкивает нижний дочерний элемент (кнопку) из поля зрения, если текста много. Вот мой код:
@Composable весело WelcomeView( модель просмотра: Добро пожаловатьViewModel, onDismiss: () -> Единица ) { Диалог (onDismissRequest = onDismiss) { Коробка( модификатор = Модификатор .clip(RoundedCornerShape(Spacing.extraLarge)) .background(Colors.backgroundBase) .padding(all = Spacing.medium) ) { Столбец { ЗначокView( имя = IconViewNames.RUNNING_SHOE, размер = IconViewSizes.LARGE, цвет = Colors.primaryBase ) Текст( viewModel.title, стиль = Text.themeBillboard, модификатор = Modifier.padding(bottom = Spacing.medium) ) Столбец( модификатор = Модификатор .verticalScroll(rememberScrollState()) ) { Текст( представлениеМодель.сообщение, стиль = Text.themeHeadline, модификатор = Modifier.padding(bottom = Spacing.medium) ) } Кнопка( onClick = onDismiss, модификатор = Модификатор .fillMaxWidth() .clip(RoundedCornerShape(Spacing.medium)) .background(Colors.primaryBase) ) { Текст( "Продолжать", стиль = Text.themeHeadline.copy(color = textExtraLight), модификатор = Modifier.padding(all = Spacing.extraSmall) ) } } } } } @Предварительный просмотр @Композитный весело PreviewWelcomeView() { Добро пожаловатьПросмотр( viewModel = WelcomeViewModel( firstName = "Венди", htmlWelcomeMessage = PreviewTextFixtures.threeParagraphs ), onDismiss = {} ) } Вот как это (правильно) выглядит, когда текст состоит только из одного абзаца:

Но вот как это выглядит, когда есть три абзаца. Текст прокручивается правильно, но обратите внимание на отсутствие кнопки «Продолжить»:
