Метод alignByBaseline
Метод alignByBaseline приёмника
RowScope
расширяет Modifier
внутри Row.
Он выравнивает элементы по базовой линии шрифта,
а не по верхнему или нижнему краю блока текста.
Параметров у метода нет.
Синтаксис
Modifier.alignByBaseline()
Пример
Давайте поставим тексты разного размера на одну базовую линию:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Row
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.sp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Row {
Text(
text = "abcde",
fontSize = 14.sp,
modifier = Modifier.alignByBaseline(),
)
Text(
text = "12345",
fontSize = 28.sp,
modifier = Modifier.alignByBaseline(),
)
}
}
}
}
На экране буквы обоих текстов встанут на одну линию, как в обычной строке набора.
Пример
Давайте сравним с выравниванием по низу блока:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Row
import androidx.compose.material3.Text
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.sp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Row {
Text(
text = "abcde",
fontSize = 14.sp,
modifier = Modifier.align(Alignment.Bottom),
)
Text(
text = "12345",
fontSize = 28.sp,
modifier = Modifier.align(Alignment.Bottom),
)
}
}
}
}
На экране тексты прижмутся нижними краями блоков, и базовые линии не совпадут.