Как сделать текст центрированным по вертикали в Android-сочинении?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как сделать текст центрированным по вертикали в Android-сочинении?

Сообщение Anonymous »


Я работаю над своим первым приложением, полностью разработанным Compose.

Мне нужно централизовать текст по вертикали с помощью компонента компоновки Text(). В традиционной практике разработки Android я делал это с помощью свойства выравнивания. Компоновка Text() также имеет свойство выравнивания, но на данный момент его возможности ограничены (разрешено только Alignment.Horizontal()), несмотря на то, что я заметил разные значения выравнивания внутри Text() при исследовании Интернета. Аналогичный случай для Column() — он также имеет свойство выравнивания .wrapContentSize(), а также имеет ограничение на значения, которые могут быть здесь использованы, несмотря на то, что быстрые исследования в Интернете показывают это. также может получить CenterVertically.

Как вы добиваетесь такого визуального эффекта? Полный фрагмент кода приведен ниже

@ExperimentalUnitApi @Композитный весело TripBookingContent (состояние: PassengerTripUiState.TripBookUiState) { Log.d(App.TAG, "[экран] TripBookingContent") val baselineGrid = DimensionResource (id = R.dimen.baseline_grid) val mainPadding = DimensionResource(id = R.dimen.main_margin_compact) varComponentSpace = DimensionResource(id = R.dimen.comComponent_space) Столбец( модификатор = Модификатор .wrapContentHeight() .fillMaxWidth() .padding( paddingValues ​​= PaddingValues( горизонтальный = mainPadding, вертикальный = baselineGrid ) ) ) { Трипвиевитем( данные = состояние.поездка, {}, модификатор = Modifier.padding(vertical = baselineGrid) ) Текст( текст = stringResource(id = R.string.booking_screen_driver), цвет = colorResource(id = R.color.white), стиль = TextStyle(textIndent = TextIndent(firstLine = TextUnit(16F, TextUnitType.Sp))), модификатор = Модификатор .height(компонентПространство) .padding(start = baselineGrid) .fillMaxWidth() .background(color = colorResource(id = R.color.design_default_color_вторичный_вариант)) ) Log.d(App.TAG, "[state]state.driver - ${state}") Log.d(App.TAG, "[state] state.driver.toDriver() - ${state.driver}") DriverCardContent (данные = состояние.драйвер) Текст( текст = stringResource(id = R.string.booking_screen_msg), цвет = colorResource(id = R.color.white), стиль = TextStyle(textIndent = TextIndent(firstLine = TextUnit(16F, TextUnitType.Sp))), textAlign = TextAlign.Центр, модификатор = Модификатор // .height(comComponentSpace) .height(32.dp) .padding(start = baselineGrid) .fillMaxWidth() .background(color = colorResource(id = R.color.colorPrimaryDark)) ) /** * Отключить кнопку книги в текущей версии (альфа-версия), для более подробной информации. * */ Кнопка( onClick = { /* нет операции */ }, модификатор = Модификатор .альфа(0F) .fillMaxWidth() .padding(baselineGrid) .height(dimensionResource(id = R.dimen.button_height)), цвета = ButtonDefaults.buttonColors( фонЦвет = Цвет.Синий, contentColor = Цвет.Белый ), ) { Текст( текст = stringResource(id = R.string.booking_screen_confirm_button), модификатор = Modifier.align(Alignment.CenterVertically), FontWeight = FontWeight.Bold ) } } } ОБНОВЛЕНИЕ Мое окончательное решение будет приведено ниже. Мне нужно переместить отступы и фон на слой Box(), чтобы текст располагался по центру как по вертикали, так и по горизонтали.
Коробка( contentAlignment = Выравнивание.Центр, модификатор = Модификатор .height(32.dp) .padding(start = baselineGrid) .fillMaxWidth() .background(color = colorResource(id = R.color.colorPrimaryDark)) ) { Текст( текст = stringResource(id = R.string.booking_screen_msg), цвет = colorResource(id = R.color.white), стиль = TextStyle(textIndent = TextIndent(firstLine = TextUnit(16F, TextUnitType.Sp))), textAlign = TextAlign.Центр, /* модификатор = Модификатор // .height(comComponentSpace) .height(32.dp) .padding(start = baselineGrid) .fillMaxWidth() .background(color = colorResource(id = R.color.colorPrimaryDark))*/ ) }
Ответить

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

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

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

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

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