ConstraintLayout - центрировать TextView в корне, но не переопределять Button - PullRequest
0 голосов
/ 13 декабря 2018

Так что мое приложение поддерживает разные языки, и я не могу предсказать, как долго будет заголовок TextView.Я хочу вернуть Button в той же строке, но я хочу, чтобы текст не закрывал кнопку.Вот пример, который я имею в виду:

example

Что с этим не так:

enter image description here

Чего я хочу добиться: когда текст будет «встречаться», его нужно разложить на две строки.Я пробовал барьеры, но тогда я не могу центрировать TextView в родительском представлении, а также автоматически изменять размер текста кнопки (эта кнопка может быть TextView с включенным clickOn), но, как вы знаете, она работает только для API 26+, Мне нужно поддерживать более низкие версии Android.

Есть ли способ достичь обоих: создать Barrier для разделения Button и TextView, а также удерживать TextView в центре экрана (не по центру)между кнопкой и концом экрана)?

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Для получения дополнительной помощи.

Итак, чтобы подвести итог того, что мы должны сделать, основываясь на ответе @ Sơn Phạm.

Нам нужно создать зеркалоButton на противоположной стороне: enter image description here

TextView должен начинаться в конце левого Button и заканчиваться в начале правого Button: enter image description here

Вам необходимо установить TextView width как match_constraint.Далее вам нужно установить правую кнопку android:visibility="invisible" (не ушел!) И сделать ее недоступной для клика.Теперь у нас есть то, чего мы хотели достичь: enter image description here

ВАЖНО : установите одинаковый источник строки для обеих кнопок, потому что при поддержке разных языков ваштекстовая кнопка изменится (например, en «Назад», es «Regreso»), но вы хотите, чтобы обе кнопки имели одинаковую ширину.Когда вы устанавливаете источник текста для кнопок, например, @string/back, обе кнопки автоматически масштабируются.

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

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

ПРИМЕЧАНИЕ. Это также хорошо работает с Barrier с.

0 голосов
/ 13 декабря 2018

Я просто думаю о быстром решении этого вопроса.

Вы можете создать еще одну кнопку того же размера, что и кнопка Назад.И выровняйте его по правому краю экрана с атрибутом visibility="invisible.Затем настройте ширину вашего TextView с помощью двух кнопок.

Тогда ваша проблема решена!Но убедитесь, что изменили атрибуты дополнительной кнопки, когда бы вы ни изменили атрибуты своей кнопки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...