Текст внутри TextView меняется при появлении сообщения об ошибке - PullRequest
0 голосов
/ 29 августа 2018

У меня в приложении Android есть TextView с текстом:

TextView перед сообщением об ошибке

image1

когда происходит какое-либо действие, я помещаю сообщение об ошибке в это TextView:

TextView после сообщения об ошибке

image2

Моя проблема в том, что позиция текста не будет такой, как вы видите на обоих рисунках

Что я могу сделать, чтобы решить эту проблему?

1019 *

Обновление: XML-код для картинки выше

<?xml version="1.0" encoding="utf-8"?>
<TableLayout
    android:id="@+id/tableLayOut"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp"
    >

    <TextView
        android:id="@+id/title"
        android:textSize="23sp"
        android:textColor="@color/black"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        />

    <RadioGroup
        android:id="@+id/radiogroup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:orientation="vertical" />

</TableLayout>

Ответы [ 4 ]

0 голосов
/ 29 августа 2018

Попробуйте задать заранее определенное пространство для отрисовки ошибки и указать размер их расположения.

0 голосов
/ 29 августа 2018

Попробуйте установить выравнивание для текстового представления по центру и выравнивание по сообщению об ошибке вправо, изменив свойства компонента.

0 голосов
/ 29 августа 2018

Хорошо с TextView ошибка Drawable закрывает пространство, поэтому Text перерисовывается в оставшейся области.

Чтобы отключить это поведение, я могу думать только сейчас о том, чтобы использовать: setError(CharSequence error, Drawable icon).

setError установит правильное рисование при каждом вызове. Поэтому идея изначально заключается в использовании прозрачного значка того же размера, что и drawableRight для TextView.

И каждый раз, когда вы сбрасываете Error, снова устанавливайте тот же прозрачный чертеж.

   textView.setError(null);
   textView.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.transparent_drawable, 0);
0 голосов
/ 29 августа 2018

Выравнивание в обоих случаях осталось. Просто это выглядит потревоженным, потому что после сообщения об ошибке текстовое представление также корректирует пространство значка ошибки. Для управления пространством для значка ошибки (красный) textview управляйте текстом в доступном пространстве после отображения сообщения об ошибке.

Надеюсь, это решит проблему. Если нет, то поделитесь своим кодом, чтобы легко решить проблему.

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