Альтернатива атрибута 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]()
Есть ли альтернативный способ для этого?
Ответы
Ответ 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 ..."