替代singleLine属性(已弃用)TextInputEditText

问题描述 投票:43回答:5

我最近使用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

有没有替代方法呢?

android android-edittext
5个回答
45
投票

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

36
投票

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

22
投票

始终为单行定义输入类型

例如:inputType="text"

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


4
投票

在JuanJoséMeleroGómez的提交之后,我想补充更多信息:

如果你试图将imeAction设置为你的EditText,例如actionSearch,设置android:maxLines="1"是不够的。如果要查看搜索图标,则必须添加android: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"


0
投票

需要将qazxsw poi替换为qazxsw poi如果你想要指示qazxsw poi需要添加此行android:singleLine="true"

© www.soinside.com 2019 - 2024. All rights reserved.