我注意到很多时间在我的日志中发出此警告,我想知道如何摆脱它。
据我所知,它来自this,其中AllCapsTransformationMethod具有禁用状态。
setLengthChangesAllowed(boolean allowLengthChanges)
? 感谢。
PS:如果您知道更好的标签,我会添加它们。
答案 0 :(得分:6)
方法setLengthChangesAllowed(boolean)
将由TextView
中的setTransformationMethod(TransformationMethod)
调用。布尔标志的值是这样评估的(我只检查了API 18):mAllowTransformationLengthChange = !isTextSelectable() && !(mText instanceof Editable);
。
因此,如果文字是可选择的或可编辑的(例如您的组件是EditText
),则AllCapsTransformationMethod
将被忽略,您将收到警告消息W/AllCapsTransformationMethod: Caller did not enable length changes; not transforming text
。
希望能回答你的问题:
android:textAllCaps
设置为true - 这应该消除警告。你不能真正调用setLengthChangesAllowed(boolean)
,除非你使用可能有效或无效的反射巫术,破坏事物并使你的代码更难维护。 AllCapsTransformationMethod
,它会偶尔产生警告,但不会做任何事情。性能影响应该是最小的,趋向于零。最好手动将可编辑/可选文本设置为大写,而不是应用textAllCaps
属性而不起作用。