如何使用 Anko 设置 FloatingActionButton 边框宽度

How to set FloatingActionButton border width with Anko

我刚从 Java 切换到 Kotlin 并且我正在使用 Anko 用于构建 布局

这是我的布局:

relativeLayout {

    floatingActionButton {
        imageSource = R.drawable.kotlin_is_amazing
    }.lparams {
        width = wrapContent
        height = wrapContent
    }

}

现在的问题是如何使用 Anko 设置 app:borderWidth

如果视图没有相应的setBorderWidth方法,您可以通过样式实现。

  1. 声明将设置此参数的样式。

    <style name="whatever">
        <item name="app:setBorderWidth">2dp</item>
    </style>
    
  2. 在属性中引用此样式。

    <attr name="whateverRef" format="reference">@style/whatever</attr>
    
  3. 将此属性作为 defStyleAttr 传递给查看构造函数。

    FloatingActionButton(context, null, R.attr.whateverRef)
    
  4. 扩展 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)