我是约束布局的新手,并且很难弄清楚如何以编程方式创建它。
这是我的xml代码:
<RelativeLayout
android:id="@+id/ShareContainer"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
app:layout_constraintDimensionRatio="16:9"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/StatusContainer"
app:layout_constraintBottom_toTopOf="@+id/ButtonContainer">
<com.myapp.ui.testLayout
android:id="@+id/ShareVideo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"/>
<ImageButton
android:id="@+id/ShareToggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="36dp"
android:layout_marginLeft="16dp"
android:background="@android:color/transparent"
android:src="@drawable/ic_video_cam_switch" />
</RelativeLayout>
e.g。什么是
的代码等价物app:layout_constraintDimensionRatio, app:layout_constraintLeft_toLeftOf,
app:layout_constraintRight_toLeftOf, app:layout_constraintTop_toBottomOf,
app:layout_constraintBottom_toTopOf, etc
答案 0 :(得分:1)
您可以以编程方式创建约束布局,类似于您创建任何其他布局。 此外,您可以使用ConstraintSet以编程方式设置约束。
在你的情况下:
ConstraintSet set = new ConstraintSet (context);
int id = R.id.ShareContainer, root_id=R.id.root_container; // I don't know root container id, so suppose it is root_container
// ratio
set.setDimensionRatio(id, "16:9");
//SIDE to SIDE of VIEW
set.connect(id, BOTTOM, root_id, BOTTOM, 8); //object, side, anchor, anchor's side, margin
set.applyTo(contraintLayout);
答案 1 :(得分:0)
XML代码:app:layout_constraintTop_toBottomOf="@id/furnishTypeGroup"
代码
val layoutParams = myView.getLayoutParams() as ConstraintLayout.LayoutParams
layoutParams.topToBottom = R.id.furnishTypeGroup
myView.setLayoutParams(layoutParams)