2017-01-24 12 views
5

Мне нужно создать кнопку без полей. Самый простой способ в xml установить Widget.AppCompat.Button.Borderless. Я пытаюсь сделать это с помощью AnkoAnko, эквивалентный стилю attr в xml

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

Но нет никакого эффекта. Что я делаю не так?

ответ

-1

Порядок неправильный. Попробуйте следующее:

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

Это работает для меня.

+0

У Kotlin есть именованные параметры, нет необходимости сохранять заказ, если вы им назовете (как в вопросе) – Antek

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) 

Вы можете посмотреть на АНКО horizontalProgressBar метод а nd HORIZONTAL_PROGRESS_BAR_FACRTORY, которые объявлены аналогичным образом.

 Смежные вопросы

  • Нет связанных вопросов^_^