我刚刚从 Java 切换到 Kotlin ,我使用 Anko 构建布局< /强>
这是我的布局:
relativeLayout {
floatingActionButton {
imageSource = R.drawable.kotlin_is_amazing
}.lparams {
width = wrapContent
height = wrapContent
}
}
现在的问题是如何使用Anko设置app:borderWidth
答案 0 :(得分:1)
如果视图没有setBorderWidth
方法,则可以通过样式执行此操作。
声明一个将设置此参数的样式。
<style name="whatever">
<item name="app:setBorderWidth">2dp</item>
</style>
在属性中引用此样式。
<attr name="whateverRef" format="reference">@style/whatever</attr>
将此attr传递给defStyleAttr
以查看构造函数。
FloatingActionButton(context, null, R.attr.whateverRef)
扩展Anko DSL。
val whateverFactory = { ctx: Context ->
FloatingActionButton(ctx, null, R.attr.whateverRef)
}
inline fun ViewManager.whateverFab() =
ankoView(whateverFactory, 0, {})
inline fun ViewManager.whateverFab(configure: FloatingActionButton.() -> Unit) =
ankoView(whateverFactory, 0, configure)