我正在玩ObjectAnimator
,我创建了一个简单的可绘制对象。
// In my drawable file
fun setMyCustomParameter(...) {
blah blah blah
}
要运行动画,我有以下对象动画器:
val orreryAnimator = ObjectAnimator.ofObject(
myDrawable,
"MyCustomParameter",
drawableEvaluator, // irrelevant
startValues, // irrelevant
endValues // irrelevant
)
现在"MyCustomParameter"
是一个硬编码的字符串值,我将其与我的方法setMyCustomParameter
匹配。问题是,如果我不想手动匹配它,因为如果我不小心拼错了,那么代码仍然会运行,除了动画将不起作用。我想问有没有办法将方法setMycustomParameter
为字符串,以便我可以保证即使我稍后更改方法名称,代码也会运行,而无需记住更改字符串值。
你可以:myDrawable::setMyCustomParameter
将为您提供对该方法的引用,该方法的名称为 :myDrawable::setMyCustomParameter.name
。 请参阅文档中的可调用引用。
另外,如果您有getMyCustomParameter
和setMyCustomParameter
,您可能希望将其修改为具有自定义 getter 和 setter 的属性:
var myCustomParameter: Type
get() = ...
set(value: Type) { ... }