Подтвердить что ты не робот

Альтернатива атрибута singleLine (устаревший) TextInputEditText

Я недавно использовал TextInputEditText и получил ошибку lint, что атрибут singleLine устарел

<android.support.design.widget.TextInputEditText
            android:id="@+id/my_edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/string_hint_dob"
            android:lines="5"/>
</android.support.design.widget.TextInputLayout>

Получаем зачистку, как показано ниже:

enter image description here

Есть ли альтернативный способ для этого?

4b9b3361

Ответ 1

Атрибут android:singleLine устарел с API уровня 3. Вы можете добиться такого же поведения, используя android:maxLines, который позволяет указать произвольное количество строк. Это превосходит android:singleLine, что ограничивает вас только одной строкой.

<TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:minLines="2"
     android:maxLines="2" /> <!-- can specify arbitrary number of max lines -->

Ответ 2

android:singleLine устарел с API 3, вместо этого вы должны использовать android:maxLines (в вашем случае android:maxLines="1").

Причиной устаревания является его плохая производительность. В любом случае атрибут singleLine не будет удален, поскольку он все еще единственный способ сделать некоторые эффекты, которые android:maxLines не может сделать:

например.

Это приведет к прокручиванию горизонтального текста на одной строке, если текст выбран.

<TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:singleLine="true"
     android:ellipsize="end"
     android:scrollHorizontally="true" />

Вместо этого это не сработает:

<TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:maxLines="1"
     android:ellipsize="end"
     android:scrollHorizontally="true" />

Ответ 3

Всегда определять тип ввода для отдельной строки

ex: inputType="text"

Вам не нужно ничего делать.

Ответ 4

<EditText
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:inputType="text"
      android:maxLines="1"
      />

используйте android:inputType="text" и android:maxLines="1" вместе

Ответ 5

Следуя поручению Хуана Хосе Мелеро Гомеса, я хотел бы добавить дополнительную информацию:

Если вы пытаетесь установить imeAction на EditText, например actionSearch, установка android:maxLines="1" будет недостаточной. Добавление android:inputType="text" обязательно, если вы хотите увидеть значок поиска.

Ответ 6

Нужно заменить android:singleLine="true" на android:maxLines="1", если вы хотите указать, что imeOptions необходимо добавить эту строку android:inputType="number|text ..."