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

时间:2017-11-16 09:54:32

标签: android android-layout kotlin anko

我刚刚从 Java 切换到 Kotlin ,我使用 Anko 构建布局< /强>

这是我的布局:

relativeLayout {

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

}

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

1 个答案:

答案 0 :(得分:1)

如果视图没有setBorderWidth方法,则可以通过样式执行此操作。

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

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

    <attr name="whateverRef" format="reference">@style/whatever</attr>
    
  3. 将此attr传递给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)