ConstraintLayout-将TextView放在根的中心,但不要覆盖Button

时间:2018-12-13 08:11:43

标签: android android-layout android-constraintlayout

因此,我的应用程序支持不同的语言,我无法预测标题TextView多长时间。我想在同一行上退后Button,但我想防止Text覆盖按钮。我的意思是一个例子:

example

这是怎么回事:

enter image description here

我要实现的内容:当文本将“符合”按钮时,应将其展开成两行。我已经尝试过障碍,但是之后我无法在父视图中居中TextView,也无法自动调整按钮文本的大小(此按钮可以是TextView,启用了clickOn),但是如您所知它仅适用于API 26+,我需要支持较低的Android版本。

有两种方法都可以实现:创建Barrier来分隔ButtonTextView,还可以将TextView保留在屏幕中间(不在按钮和末尾之间居中)屏幕)?

2 个答案:

答案 0 :(得分:3)

我只是想为此快速解决。

您可以再创建一个与后退按钮相同大小的按钮。并使用属性visibility="invisible将其与屏幕右侧对齐。然后使用2个按钮使TextView的宽度匹配。

然后您的问题解决了!但是,无论何时更改按钮的属性,请确保更改其他按钮的属性

答案 1 :(得分:1)

获得更多帮助。

因此,总结一下根据@SơnPhạm答案要做的事情。

我们需要在另一侧创建for的镜像: enter image description here

Button应该在TextView的左端开始,并在Button的右端开始: enter image description here

您需要将Button的宽度设置为TextView。接下来,您需要设置右键match_constraint(不消失!)并使它不可单击。现在,我们有了想要实现的目标: enter image description here

重要:为两个按钮设置相同的字符串源,因为当您支持不同的语言时,文本按钮将更改(例如,“返回”,“ Regreso”),但您想保留两个按钮相同的宽度。当您同时设置两个按钮的文本源时,例如android:visibility="invisible",两个按钮将自动缩放。

@string/back

注意:它也可以与 <Button android:id="@+id/button" android:text="@string/back" ... /> <Button android:id="@+id/button2" android:text="@string/back" ... /> s一起使用。