Я играю с поддержкой ContraintLayout в Anko и сталкиваюсь с проблемой, из-за которой я не могу заставить самый простой пример работать правильно.
У меня есть две кнопкигоризонтально в верхней части экрана в constraintLayout, действуя как цепочка так, чтобы они были отцентрированы по горизонтали.
Сначала я использовал старые добрые XML-макеты и Android Studio, чтобы я мог взглянуть на кодпроизведено.
Вот мой не-Anko XML-макет
<?xml version="1.0" encoding="utf-8"?>
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="First"
app:layout_constraintEnd_toStartOf="@+id/button5"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintStart_toStartOf="parent"
/>
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Second"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/button4"
/>
Это дает правильный макет, как показано ниже
Ниже приведено то, что, по моему мнению, должно быть эквивалентным кодом Котлина-Анко для получения того же результата.
constraintLayout {
id = R.id.constraintRoot
val first : Button = button("First"){
id = R.id.firstButton
width = wrapContent
height = wrapContent
}.lparams{
//topToTop = ConstraintSet.PARENT_ID
startToStart = PARENT_ID
endToStart = R.id.secondButton
horizontalChainStyle = spread
editorAbsoluteY = 16
horizontalBias = 0.5f
}
val second : Button = button("Second"){
id = R.id.secondButton
width = wrapContent
height = wrapContent
}.lparams{
startToEnd = R.id.firstButton
endToEnd = PARENT_ID
editorAbsoluteY = 16
horizontalBias = 0.5f
}
}
Но по какой-то причиневместо этого получается следующий результат:
Как видите, кнопки не равномерно распределены и не отцентрированы по горизонтали внутри вида.
Есть что-то, что я пропускаю илиConstraintLayout для Anko еще не совсем готов к использованию?
Спасибо!