Anko布局 – 区别布局applyRecursively
什么是区分我想要应用的一些观点的最好方法是什么? 例如,我有几个textViews
,不想为他们创建单独的容器(扁平层次!),但我仍然知道一些需要有例如一个特定的textSize,有些需要有特定的颜色。 我应该以特定的方式生成ids
吗? 对于一些情况(当一些样式一起使用时),我当然可以组成一个小功能:
private fun ViewManager.bigTextView( content: String, init: (@AnkoViewDslMarker TextView).() -> Unit) = textView(content) { init() typeface = medium textSize = 16f }
但什么时候更通用? 我被建议也许标签会做得更好。
我可以建议的是,您可以为每个需要应用的样式编写一组扩展函数,然后在DSL中创建视图层次结构时调用它们。 像这样的TextView
的东西:
fun TextView.makeBig() { typeface = medium textSize = 16f }
然后在你的DSL:
textView(R.string.example) { makeBig() }
这种方法不需要你生成ID或设置标签,而且对于Kotlin来说,它看起来或多或少是自然的和惯用的。
- 使用RxJava获得与领域和改造的独特结果
- 错误:错误:在类型为View的可为空的接收方上只允许使用safe(?。)或非null断言(!!)调用。
- 在Recycler视图上复制适配器
- java.lang.IllegalStateException不确定它是否与数据类型?
- Android kotlin onCreate(savedInstanceState:Bundle?)导致IllegalArgumentException
- Android工作室Kotlin插件错误
- Kotlin:ArrayIndexOutOfBoundsException在将DispatchTask转换为字符串期间
- Proguard:我可以添加什么规则来避免找不到引用类?
- Android Keystore?.getKey在某些设备上返回null