【发布时间】:2019-11-27 19:58:26
【问题描述】:
我只是从 Android 开始我的冒险,所以如果这个问题很愚蠢,请原谅,但我一直在寻找答案很长一段时间都无济于事。问题很简单:我可以通过编程方式更改此参数的值吗?
app:layout_constraintTop_toBottomOf="@+id/divider1"
我要做的很简单:我有一行可见的对象,下面有一个分隔线,下面有一个 TextView,我限制在该分隔线的底部。我还有第二行对象,下面有另一个分隔线,从可见性设置为 GONE 开始,但可以使用浮动操作按钮将其切换为可见。我需要第一行下方的 TextView 向下移动,以便在第二行出现时为其腾出空间。我可以使用 setY,但考虑到这两行是相同的,只是具有不同的值,将 TextView 的顶部约束从“divider1”更改为“divider2”会更容易。可以做到吗?以下是按钮目前的作用:
addButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (!isPair2Visible) {
driverLabel2.setVisibility(View.VISIBLE);
followerLabel2.setVisibility(View.VISIBLE);
driver2.setVisibility(View.VISIBLE);
follower2.setVisibility(View.VISIBLE);
ratioLabel2.setVisibility(View.VISIBLE);
ratio2.setVisibility(View.VISIBLE);
divider2.setVisibility(View.VISIBLE);
isPair2Visible = true;
}
}
});
这是我需要移动的 TextView:
<TextView
android:id="@+id/totalRatio"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:text="@string/ratio_default"
android:textColor="@color/colorAccentOrange"
android:textSize="24sp"
app:layout_constraintStart_toStartOf="@+id/ratio1"
app:layout_constraintTop_toBottomOf="@+id/divider1" />
如果我可以将最后一行更改为:
app:layout_constraintTop_toBottomOf="@+id/divider2" />
【问题讨论】:
-
question 中的答案应该可以满足您的需求。将来请在发布之前在 stackoverflow 上搜索类似的问题。
-
我确实搜索过类似的问题。而且他们都使用被 Android Studio 文档标记为弃用的解决方案,我无法让他们在 Android Studio 3.5.2 中工作。相信我,我已经测试了十几个使用 ConstraintSet 的解决方案,但我就是无法让它发挥作用。