【发布时间】:2017-02-10 12:21:08
【问题描述】:
我注意到 Kotlin 合成属性不适用于 CustomViews。我不知道这是不是有意的。在读取生成的 java 类时,我看到缓存存在:
private HashMap _$_findViewCache;
但从未使用过。相反,只要需要视图,就会调用findViewById。这是默认行为吗?合成属性仅适用于活动和片段?
【问题讨论】:
-
_$_findViewCache字段在Activity和Fragment类中自动生成。您的自定义 View 类中有_$_findViewCache吗? -
是的。生成代码(地图和缓存功能在那里)。但是通过综合访问属性被翻译成 findViewById 字节码(我通过“Kotlin Bytecode”选项看到它)
-
如果它是一个错误,这有点关键。特别是在执行动画的视图中,其中 findViewbyId 被调用了很多次。如果您需要任何额外信息,请告诉我
-
@yanex 这应该是默认行为还是我错过了什么?
-
我很快就会对此进行调查。
标签: android kotlin kotlin-android-extensions