我在ConstrainLayout中有一个视图,如下所示。
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="260dp"
android:textColor="#FFF"
android:textSize="16sp"
app:layout_constraintLeft_toLeftOf="@+id/parent"
app:layout_constraintTop_toBottomOf="@id/message_date"
android:id="@+id/text_main"
/>
我想根据某些条件在recycleViewHolder中以编程方式将视图更改为app:layout_constraintLeft_toLeftOf="@+id/parent"
或layout_constraintLeft_toRightOf="@+id/parent"
。
6条答案
按热度按时间polhcujo1#
下面是使用Java代码将按钮设置到父视图底部的示例:
为了达到这样的效果
你的java代码应该看起来像这样
为了达到这样的效果
你的Java代码应该是这样的
这里,我假设
android:id="@+id/parent"
是父ConstraintLayout的id。vcudknz32#
约束集=新约束集();等等
反正对我不起作用。
解决人
nqwrtyyt3#
使用
id
cmssoen24#
当我需要向下移动
buttons
时,我遇到了同样的情况,一旦出现新的EditText
,在XML文件中,它们有如下约束:app:layout_constraintTop_toBottomOf="@+id/first_layout"
我需要做的就是把它改成程序化的
app:layout_constraintTop_toBottomOf="@+id/second_layout"
使用
ConstraintLayout.LayoutParams
,任务非常简单,例如Kotlin:
就是这样!
mv1qrgav5#
没有见过比这更好的解决方案:
bihw5rsg6#
在Android中,您可以使用ConstraintLayout.LayoutParams类以编程方式将layout_constraintRight_toRightOf属性设置为“parent”。
在上例中,“constraint_layout”是约束布局的ID,“view”是要对其设置约束的视图,“params.rightToRight = ConstraintLayout.LayoutParams.PARENT_ID”用于将layout_constraintRight_toRightOf属性设置为“parent”。
这会将视图的右侧设置为其父视图的右侧,使其与屏幕的右边缘对齐。您也可以使用ConstraintLayout.LayoutParams的setRightToRight(int rightToRight)方法。
还需要注意的是,在修改视图的布局参数之后,应该对视图调用requestLayout(),以便更改将反映在布局上。