Android 摆脱:AllCapsTransformationMethod';调用者未启用长度更改';
我在日志中多次注意到这个警告,我想知道如何消除它 我知道它来自AllCapsTransformation方法的禁用状态Android 摆脱:AllCapsTransformationMethod';调用者未启用长度更改';,android,Android,我在日志中多次注意到这个警告,我想知道如何消除它 我知道它来自AllCapsTransformation方法的禁用状态 如何解决?我应该在哪里调用方法setLengthChangesAllowed(布尔allowLengthChanges) 为什么会出现 它对处理有多大的影响(我在非常低的内存设备上运行) 谢谢 附言:如果你知道更好的标签,我会添加它们 方法setLengthChangesAllowed(布尔)将由setTransformationMethod(TransformationM
- 如何解决?我应该在哪里调用方法
李>setLengthChangesAllowed(布尔allowLengthChanges)
- 为什么会出现李>
- 它对处理有多大的影响(我在非常低的内存设备上运行)李>
附言:如果你知道更好的标签,我会添加它们 方法
setLengthChangesAllowed(布尔)
将由setTransformationMethod(TransformationMethod)
中的TextView
调用。布尔标志的值是这样计算的(我只检查了API 18):mAllowTransformationLengthChange=!istextselective()&&!(可编辑的多行文字实例)代码>
因此,如果文本是可选择或可编辑的(例如,您的组件是EditText
),则allcapstransformation方法将被忽略,您将收到警告消息W/allcapstransformation方法:调用者未启用长度更改;不转换文本
希望回答您的问题:
- 如果您希望应用转换,请使用不可选择、不可编辑的文本组件,或者对于可编辑/可选择的文本,不要将
android:textAllCaps
设置为true-这应该可以消除警告。你不能真正调用setLengthChangesAllowed(布尔值)
,除非你使用反射巫毒,它可能会起作用,也可能会破坏一些东西,使你的代码更难维护李>
- 见上面的解释。我希望有帮助
- 获取警告基本上意味着您在内存中有一个无用的
allcapstransformation方法
,该方法局部生成该警告,但在其他方面什么也不做。性能影响应该最小,趋于零。最好手动将可编辑/可选文本设置为大写,而不是应用textAllCaps
属性而不产生任何效果