Android ConstraintLayout-在根目录中居中文本视图,但不';超控按钮

Android ConstraintLayout-在根目录中居中文本视图,但不';超控按钮,android,android-layout,android-constraintlayout,Android,Android Layout,Android Constraintlayout,所以我的应用程序支持不同的语言,我无法预测titleTextView会持续多长时间。我想让back按钮位于同一行,但我想阻止文本覆盖按钮。我的意思是有一个例子: 这有什么不对: 我想要实现的是:当文本将“相遇”按钮时,它应该展开为两行。我尝试过设置障碍,但是我不能在父视图中居中设置TextView,也不能自动调整按钮的文本大小(这个按钮可以是TextView,启用了clickOn),但正如您所知,它只适用于API 26+,我需要支持较低的Android版本 是否有实现这两种方法:创建屏障>代

所以我的应用程序支持不同的语言,我无法预测title
TextView
会持续多长时间。我想让back
按钮
位于同一行,但我想阻止文本覆盖按钮。我的意思是有一个例子:

这有什么不对:

我想要实现的是:当文本将“相遇”按钮时,它应该展开为两行。我尝试过设置障碍,但是我不能在父视图中居中设置
TextView
,也不能自动调整按钮的文本大小(这个按钮可以是
TextView
,启用了
clickOn
),但正如您所知,它只适用于API 26+,我需要支持较低的Android版本


是否有实现这两种方法:创建<代码>屏障>代码>分隔<代码>按钮>代码>和<代码>文本视图< /代码>,并且在屏幕中间(不在按钮和屏幕的结尾之间)保持<代码>文本视图< /代码>?

我想快速解决这个问题。 您可以再创建一个与后退按钮大小相同的按钮。并将其与屏幕右侧对齐,属性为
visibility=“invisible
。然后使文本视图的宽度与两个按钮匹配


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

我只是想快速解决这个问题

您可以再创建一个与后退按钮大小相同的按钮,并将其与屏幕右侧对齐,属性为
visibility=“invisible
。然后使文本视图的宽度与两个按钮匹配


那你的问题就解决了!但是,当您更改按钮属性时,请确保更改其他按钮的属性,以获得进一步帮助。

因此,总结一下我们在@Sơn Ph的基础上要做什么ạ我回答

我们需要在另一侧创建
按钮的镜像:

TextView
应从左
按钮的末尾开始,从右
按钮的开头开始:

您需要将
文本视图
宽度设置为
匹配约束
。接下来,您需要设置右键,使其不可点击。现在,我们已经实现了我们想要实现的目标:

重要信息:为两个按钮设置相同的字符串源,因为当您支持不同的语言时,您的文本按钮将更改(例如,en“Back”,es“Regreso”),但您希望保持两个按钮的宽度相同。为两个按钮设置按钮文本源时,例如
@string/back
两个按钮都将自动缩放

    <Button
    android:id="@+id/button"
    android:text="@string/back"
    ... />

    <Button
    android:id="@+id/button2"
    android:text="@string/back"
    ... />


注意:它也适用于
屏障
s.

以获得进一步帮助。

因此,总结一下我们在@Sơn Ph的基础上要做什么ạ我回答

我们需要在另一侧创建
按钮的镜像:

TextView
应从左
按钮的末尾开始,从右
按钮的开头开始:

您需要将
文本视图
宽度设置为
匹配约束
。接下来,您需要设置右键,使其不可点击。现在,我们已经实现了我们想要实现的目标:

重要信息:为两个按钮设置相同的字符串源,因为当您支持不同的语言时,您的文本按钮将更改(例如,en“Back”,es“Regreso”),但您希望保持两个按钮的宽度相同。为两个按钮设置按钮文本源时,例如
@string/back
两个按钮都将自动缩放

    <Button
    android:id="@+id/button"
    android:text="@string/back"
    ... />

    <Button
    android:id="@+id/button2"
    android:text="@string/back"
    ... />


注意:它也适用于
Barrier
s.

为什么不将textview开始约束到按钮的末尾,并使textview多行?如果textview将从按钮的末尾开始,则我将无法将其居中(屏幕的中心),但它将居中于按钮和屏幕的末尾之间。抱歉,我没看完,很高兴你现在有了解决办法,为什么不将textview开始约束到按钮的末尾,并使textview多行?如果textview将从按钮的末尾开始,那么我将无法将其居中(屏幕的中心),但它将居中于按钮和屏幕的末尾之间。对不起,我没看透,很高兴你有解决办法now@Denathan我不明白。然后使文本视图的宽度与两个按钮匹配。“你能进一步解释一下吗?”Prashant在下面补充了一个答案,希望能有所帮助。谢谢@Denathan的解释:D为我的不好道歉English@Denathan谢谢你的解释。我从问题中了解到的是,
TextView
中的文本如果只是一个单词,它将保持在中间,但如果它是一条长线,它不会在左侧的
按钮上重叠,而是会延伸到屏幕的右侧。这就是为什么我对这个答案感到困惑,我不明白这个。然后使文本视图的宽度与两个按钮匹配。“你能进一步解释一下吗?”Prashant在下面补充了一个答案,希望能有所帮助。谢谢@Denathan的解释:D为我的不好道歉English@Denathan谢谢你的解释。我从问题中了解到的是,
TextView
中的文本如果只是一个单词,它将保持在中间,但如果它是一条长线,它不会在左侧的
按钮上重叠,而是会延伸到屏幕的右侧。这就是为什么我对这个答案感到困惑。