Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中是否不推荐使用xml属性singleLine?_Android_Android Edittext_Attributes_Textview_Android Singleline - Fatal编程技术网

Android中是否不推荐使用xml属性singleLine?

Android中是否不推荐使用xml属性singleLine?,android,android-edittext,attributes,textview,android-singleline,Android,Android Edittext,Attributes,Textview,Android Singleline,singleLine在xml布局文件中用于TextView和EditText以下内容: <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" /> 所以说,singleLine不推荐使用,但仍然建议使用它。有时,当maxLines=“1”不起作用时,似乎有必要使用它。(见,和) 文档应该是回答

singleLine
在xml布局文件中用于
TextView
EditText
以下内容:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:singleLine="true" />

所以说,
singleLine
不推荐使用,但仍然建议使用它。有时,当
maxLines=“1”
不起作用时,似乎有必要使用它。(见,和)

文档应该是回答这个问题的地方,对吗

此常量在API级别3中被弃用。

此属性是 不赞成。使用
maxLines
来更改静态文件的布局 文本,并使用inputType属性中的
text多行
标志 而不是可编辑文本视图(如果单线和输入类型都是 如果提供,inputType标志将覆盖singleLine的值)

但是,没有迹象表明它已被弃用,无论是for还是for或for。相比之下,相同的文本视图文档确实声明其他内容,如
STATUS\u BAR\u HIDDEN
fitSystemWindows
不推荐使用。那么,
singleLine
的弃用是一种省略,是“未预先确定”还是什么


这个问题一直是但不是问题的主要焦点(也没有得到回答)。

在(v5.1.0 r1)的官方格雷普码中:

android:singleLine
未使用
@弃用
注释

我在方法中也看到了这一点:

setInputType
覆盖
msingeline

编辑:
此xml属性现在已被正式弃用。(). 它现在可以在AndroidStudio xml编辑器中看到。

我认为您的问题的答案已经在其中一个SO中找到了。不幸的是,
单行线
的弃用并不是一件坏事

它已被弃用,但短期内不会有任何进展

它被弃用,因为它的性能相对于它的后继产品
maxLines
来说很差。它用于替换放置在
TextView
中的字符串中的换行符和回车符,与
maxLines
不同,maxLines“只是”根据行数调整
TextView
的高度,而不替换字符串

这种替换字符的方法还意味着
单线
可以(例如,如果您使用自定义字体)。正是这些性能和可靠性问题导致了它的不受欢迎

但是,它不会有任何进展,因为作为链接到states的SO post,它仍然被许多旧的Android应用程序使用,并且有时仍然有用(例如,当您希望在一行上显示整个文本,而忽略回车符和换行符时)


请注意,弃用并不一定意味着API即将消失。这只意味着不鼓励使用它,但可能允许使用。

不推荐使用的属性是在change中添加的,这只是Google内部SCM的转储:

自动从//branchs/cupcake/…@130745导入

从更改中可以看出,
core/res/res/values/attrs.xml
添加了@deprecated doc注释,但
core/java/android/widget/TextView.java
不会更改
setSingleLine()
的doc注释中的任何内容

现在,如果没有谷歌内部的SCM历史记录,就不可能知道
attrs.xml
doc注释中的上述更改的确切原因,但请回答您的问题

那么,
singleLine
的弃用是一种省略,是“未预先确定”还是什么


一个可能的答案是:
TextView
的单行既不是弃用的,也不是“未预先确定的”,但它经过了增强,以考虑视图是否可编辑、是否使用了密码字段或是否使用了影响单行/多行的任何其他输入类型标志。

我想我会添加Android Studio 2.2.1将单行标记为弃用的。 然而,我发现在我的例子中:

android:singleLine="false"
效果很好,但是

android:maxLines="2"

没有

虽然Android Studio声称它已被弃用,但实际上我们有一个编辑文本,它应该只允许自己是单行

添加
maxLines=“1”
使其允许换行字符,这不适合我们的需要


因此,我们继续使用
singleLine=“true”
singleLine
是不推荐使用的。无需讨论。

唯一的问题是文档错误。
“使用
inputType
属性中的
textMultiLine
标志,而不是可编辑文本视图”与使用
单线
实现的目标正好相反
您可以使用android:inputType=“text”
来代替它
对我来说,它正是我想要的——一个没有换行符的单行编辑。

简单的替代方法,使用:
android:maxLines=“1”
我刚刚添加了
android:inputType=“text”
并删除了
android:maxLines=“1”
,对我来说效果很好。

只是为了给讨论添加更多信息,Lint现在有以下错误:

“将
ellipsize
maxLines=1
组合在一起可能会导致某些设备崩溃。早期版本的lint建议将
singleLine=true
替换为
maxLines=1
,但在使用
ellipsize
时不应这样做

更多信息:


所以,我想现在是单线,我想我们应该想出一个新的术语。。。“deprecatedish”

仅提供
android:maxLines=“1”
android:minLines=“1”
无法解决键盘
actionNext
相关问题。使用
android:inputType=“text”
进行同样的操作。

在哪些情况下maxLines=“1”不起作用?您能为这两种情况发布
code
块吗?我并不是在问为什么要使用
max的特定实例
android:maxLines="2"