我最近使用了 TextInputEditText
,我得到了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>
如下所示进行罢工:
有没有其他替代方法?
答案 0 :(得分:45)
自API Level 3以来已弃用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 -->
答案 1 :(得分:36)
android:singleLine
已被弃用,您必须使用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" />
答案 2 :(得分:21)
始终为单行
定义输入类型 ex: from referenceRow in context.SomeTable
// We want 8 in the Take and the results to still be 8 after the where.
// instead of typing in the value twice (in this example), i wanted to use a constant value here
let validateCount = 8
// sub query expression in my example
let subQuery = from sub in context.SomeTable
where sub.SomeColumn == rowReference.SomeColumn
orderby sub.SomeColumn descending
select sub
// use the sub query, take X amount, apply filter, check to see if Count() is the same as Take()
where subQuery.Take(validateCount) // this is where we fail. if we put in the constant 8, we are ok.
.Where(x => x.SomeOtherColumn == "Some value")
.Count() == validateCount // this is fine
select referenceRow
您不需要做任何其他事情。
答案 3 :(得分:5)
在JuanJoséMeleroGómez的提交之后,我想补充更多信息:
如果您尝试将imeAction
设置为EditText
,例如actionSearch
,则设置android:maxLines="1"
是不够的。如果您想查看搜索图标,则添加android:inputType="text"
必需。
答案 4 :(得分:3)
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:maxLines="1"
/>
使用android:inputType="text"
和android:maxLines="1"
收集
答案 5 :(得分:0)
如果您想表示需要android:singleLine="true"
,请将android:maxLines="1"
替换为imeOptions
,请添加此行android:inputType="number|text ..."
答案 6 :(得分:0)
如果您从不赞成使用的android:singleLine="true"
迁移到android:maxLines="1"
,请不要忘记添加android:ellipsize="end"
,如果您的字符串对于文本字段来说太长,则要保存三个点符号。