我正在尝试设计以下布局
<android.support.constraint.ConstraintLayout
android:id="@+id/before_breakfast_option"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/diabetes_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:text="water"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@color/black"
app:layout_constraintBaseline_toBaselineOf="@+id/toogle_diabeties"
app:layout_constraintLeft_toLeftOf="parent"/>
<TextView
android:textColor="@color/black"
android:text="almonds"
app:layout_constraintTop_toTopOf="parent"
android:id="@+id/toogle_diabeties"
app:layout_constraintRight_toRightOf="parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</android.support.constraint.ConstraintLayout>
使用以下代码:
var textView= TextView(this@DietStepFive)
textView.id=100
textView.text="water"
textView.background=ContextCompat.getDrawable(this@DietStepFive,R.drawable.rectangle_diet)
textView.setTextColor(ContextCompat.getColor(this@DietStepFive,R.color.black))
var textView1= TextView(this@DietStepFive)
textView1.id=101
textView1.text="almonds"
textView1.background=ContextCompat.getDrawable(this@DietStepFive,R.drawable.rectangle_diet)
textView1.setTextColor(ContextCompat.getColor(this@DietStepFive,R.color.black))
var constraintset= ConstraintSet()
constraintset.clone(before_breakfast_option)
//left to left of
constraintset.connect(textView.id,ConstraintSet.LEFT,ConstraintSet.PARENT_ID,ConstraintSet.LEFT,0)
//baseline
constraintset.connect(textView.id,ConstraintSet.BASELINE,textView1.id,ConstraintSet.BASELINE,0)
//right to right of
constraintset.connect(textView1.id,ConstraintSet.RIGHT,ConstraintSet.PARENT_ID,ConstraintSet.RIGHT,0)
//top to top of
constraintset.connect(textView1.id,ConstraintSet.TOP,ConstraintSet.PARENT_ID,ConstraintSet.TOP,0)
constraintset.applyTo(before_breakfast_option)
before_breakfast_option.addView(textView)
before_breakfast_option.addView(textView1)
但是XML代码给我的布局有两个textview,一个是左侧,一个是右侧,但是kotlin代码给了我左边的textview重叠。为什么呢?
什么错了?任何领导?答案 0 :(得分:2)
将TextView
添加到布局中,然后像设置XML时一样连接它们。您添加了已连接它们的视图。
移动
before_breakfast_option.addView(textView)
before_breakfast_option.addView(textView1)
前
var constraintset= ConstraintSet()
一切都应该有效。
答案 1 :(得分:0)
也许其他人将来会使用它。良好的睡眠和工作。 我使用了错误的约束。
而不是这个
//left to left of
constraintset.connect(textView.id,ConstraintSet.LEFT,ConstraintSet.PARENT_ID,ConstraintSet.LEFT,0)
//baseline
constraintset.connect(textView.id,ConstraintSet.BASELINE,textView1.id,ConstraintSet.BASELINE,0)
//right to right of
constraintset.connect(textView1.id,ConstraintSet.RIGHT,ConstraintSet.PARENT_ID,ConstraintSet.RIGHT,0)
//top to top of
constraintset.connect(textView1.id,ConstraintSet.TOP,ConstraintSet.PARENT_ID,ConstraintSet.TOP,0)
使用此
//left to right of
constraintset.connect(textView1.id,ConstraintSet.LEFT,textView.id,ConstraintSet.RIGHT,10)
//baseline
constraintset.connect(textView1.id,ConstraintSet.BASELINE,textView.id,ConstraintSet.BASELINE,0)
答案 2 :(得分:-2)
尝试替换app:layout_constraintRight_toRightOf="parent"
与
app:layout_constraintRight_toRightOf="@+id/toogle_diabeties"