我在我的应用程序中使用了(多个)TextSwitchers,这看起来最多。像这样:
<TextSwitcher
android:id="@+id/countdownTextSwitcher"
android:inAnimation="@anim/countdown_enter" />
每个都需要工厂。像这样(科特琳):
countdownTextSwitcher.setFactory {
val textView = TextView(context)
textView.textSize = 15f
textView.someOtherProperty = someValue
textView
}
在我的代码的某个地方,我将设置文本。 (出于这个示例的缘故,让我们忽略字符串资源/复数在这里是一个好主意。)
countdownTextSwitcher.setText("42 Seconds")
我猜在Java中,Factory的代码更加膨胀。
是否有一种(有点优雅的方法)摆脱工厂并在xml中指定textSize
和someOtherProperty
?因此,我的代码与布局进行交互的唯一方法是进行setText()
调用。我似乎找不到一个。
如果没有办法,这背后的技术原因是什么? 我不熟悉自定义视图,但是设置默认的Factory并通过xml属性传递似乎并不疯狂。
如果没有真正的技术原因,实施该方法的实际原因是什么? 我是否完全忽略了默认用例?