Android 单行属性的替代项(不推荐使用)textInputItemText

Android 单行属性的替代项(不推荐使用)textInputItemText,android,android-edittext,Android,Android Edittext,我最近使用了textinputtext,我得到了一个lint错误,即singleLine属性是不推荐的 <android.support.design.widget.TextInputEditText android:id="@+id/my_edit_text" android:layout_width="match_parent" android:layout_height="wrap_content"

我最近使用了
textinputtext
,我得到了一个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>


有其他方法吗?

android:singleLine
属性自那时起就被弃用了。您可以使用
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 -->

android:singleLine
自API 3以来已被弃用,您必须改用
android:maxLines
(在您的情况下,
android:maxLines=“1”

反对的原因是它的性能差。无论如何,
singleLine
属性不会被删除,因为它仍然是产生一些
android:maxLines
无法产生的效果的唯一方法:

e、 g

如果选中文本,将在一行上生成滚动的水平文本

<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" />

始终为单行定义输入类型

例如:
inputType=“text”


您不需要做任何其他事情。

在胡安·何塞·梅莱罗·戈梅兹的讲话之后,我想补充更多信息:

如果您试图将
imeAction
设置为
EditText
,例如
actionSearch
,设置
android:maxLines=“1”
是不够的。如果您想查看搜索图标,添加android:inputType=“text”是必须的。


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

使用
android:inputType=“text”
android:maxLines=“1”
一起使用
android:singleLine=“true”
替换为
android:maxLines=“1”
如果您想指示
imeOptions
需要添加这一行
android:inputType=“number”text…”
,可能会更好,但遗憾的是,视图在片段中时不工作。请帮助使用Digits时不允许imeoption actionNext这似乎不起作用,除非您还添加了android:inputType=“text”--请参阅@Arihant answer belowAlso,android:singleLine=“true”允许检查换行符并移动到下一个字段。android:maxLines=“1”没有。我完全同意你的观点。但是有没有其他替代方法???@MashukKhan我没有找到,如果你找到一种方法,告诉我,我会为其他用户更新我的答案。
如果选中文本,这将在一行上产生一个滚动的水平文本
即使我这样做了,它也不适用于我
android:singleLine=“true”android:ellipsize=“end”android:ScrollHorizontal=“true”
组合
maxLines=“1”
inputType=“text”
会得到相同的行为。伟大的有时
maxLines=“1”
不起作用。是
inputType
保存了meI,我不知道其他人的情况,但支持小部件(AppCompatEditText和AppCompatTextView)确实需要一个inputType才能使maxLines正常工作。我已经设置了maxLines属性,但缺少inputType。你的回答真的很有帮助。谢谢Arihant。虽然只设置maxLines没有帮助,但设置inputType也有帮助。@c-an谢谢You@MauriciGuellHernandez欢迎