6

我需要创建无边框按钮。xml 中最简单的设置方法Widget.AppCompat.Button.Borderless。我正在尝试使用Anko

button(theme = R.style.Widget_AppCompat_Button_Borderless_Colored, text = "Send") {
    horizontalGravity = Gravity.END
    lparams(wrapContent, wrapContent)
}

但是没有效果。我究竟做错了什么?

4

2 回答 2

0

尝试使用第三个构造函数参数,它接受attr资源:

addView(Button(activity, null, R.attr.borderlessButtonStyle))

此外,您可以将其声明为 DSL 组件:

fun ViewManager.borderlessButton(textRes: Int = 0) =
        borderlessButton(textRes) { }

fun ViewManager.borderlessButton(textRes: Int = 0, init: Button.()->Unit) =
        ankoView({ Button(it, null, R.attr.borderlessButtonStyle) }, 0) {
            if (textRes != 0) setText(textRes)
            init()
        }

然后,您的呼叫站点可能如下所示:

borderlessButton(android.R.string.ok)

您可以查看 Anko 的horizontalProgressBar方法,并HORIZONTAL_PROGRESS_BAR_FACRTORY以类似的方式声明。

于 2017-04-21T10:09:30.770 回答
-1

顺序是错误的。尝试这个:

button("Your text", android.support.design.R.style.Base_Widget_AppCompat_Button_Borderless_Colored) {
  //your params
 }

这对我有用。

于 2017-02-21T07:37:12.670 回答