Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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 摆脱:AllCapsTransformationMethod';调用者未启用长度更改';_Android - Fatal编程技术网

Android 摆脱:AllCapsTransformationMethod';调用者未启用长度更改';

Android 摆脱:AllCapsTransformationMethod';调用者未启用长度更改';,android,Android,我在日志中多次注意到这个警告,我想知道如何消除它 我知道它来自AllCapsTransformation方法的禁用状态 如何解决?我应该在哪里调用方法setLengthChangesAllowed(布尔allowLengthChanges) 为什么会出现 它对处理有多大的影响(我在非常低的内存设备上运行) 谢谢 附言:如果你知道更好的标签,我会添加它们 方法setLengthChangesAllowed(布尔)将由setTransformationMethod(TransformationM

我在日志中多次注意到这个警告,我想知道如何消除它

我知道它来自AllCapsTransformation方法的禁用状态

  • 如何解决?我应该在哪里调用方法
    setLengthChangesAllowed(布尔allowLengthChanges)
  • 为什么会出现
  • 它对处理有多大的影响(我在非常低的内存设备上运行)
谢谢


附言:如果你知道更好的标签,我会添加它们

方法
setLengthChangesAllowed(布尔)
将由
setTransformationMethod(TransformationMethod)
中的
TextView
调用。布尔标志的值是这样计算的(我只检查了API 18):
mAllowTransformationLengthChange=!istextselective()&&!(可编辑的多行文字实例)

因此,如果文本是可选择或可编辑的(例如,您的组件是
EditText
),则
allcapstransformation方法将被忽略,您将收到警告消息
W/allcapstransformation方法:调用者未启用长度更改;不转换文本

希望回答您的问题:

  • 如果您希望应用转换,请使用不可选择、不可编辑的文本组件,或者对于可编辑/可选择的文本,不要将
    android:textAllCaps
    设置为true-这应该可以消除警告。你不能真正调用
    setLengthChangesAllowed(布尔值)
    ,除非你使用反射巫毒,它可能会起作用,也可能会破坏一些东西,使你的代码更难维护
  • 见上面的解释。我希望有帮助
  • 获取警告基本上意味着您在内存中有一个无用的
    allcapstransformation方法
    ,该方法局部生成该警告,但在其他方面什么也不做。性能影响应该最小,趋于零。最好手动将可编辑/可选文本设置为大写,而不是应用
    textAllCaps
    属性而不产生任何效果