我最近使用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>
通过以下方式获得罢工:
有没有替代方法呢?
自android:singleLine
以来,API Level 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 -->
自API 3以来,android:singleLine
已弃用,您必须使用android:maxLines
(在您的情况下为android:maxLines="1"
)。
弃用的原因是性能不佳。无论如何,singleLine
属性不会被删除,因为它仍然是制作android:maxLines
无法做出的效果的唯一方法:
EG
如果选择了文本,这将在一行上生成滚动水平文本。
<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"
你不需要做任何其他事情。
在JuanJoséMeleroGómez的提交之后,我想补充更多信息:
如果你试图将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"
需要将qazxsw poi替换为qazxsw poi如果你想要指示qazxsw poi需要添加此行android:singleLine="true"