Anko equivalente al estilo attr en xml

Necesito crear un button sin bordes. La forma más fácil en xml para establecer Widget.AppCompat.Button.Borderless . Estoy tratando de hacer esto usando Anko

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

Pero no hay efecto. ¿Qué estoy haciendo mal?

Intenta usar el tercer parámetro de constructor, que acepta el recurso attr :

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

Además, puede declararlo como un componente 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() } 

Entonces, su sitio de llamada puede verse así:

 borderlessButton(android.R.string.ok) 

Puede consultar el método horizontalProgressBar de Anko y HORIZONTAL_PROGRESS_BAR_FACRTORY que se declaran de manera similar.

El order es incorrecto Prueba esto:

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

Esto funciona para mí

  • Error al intentar crear una instancia de una class Kotlin de Java
  • Se produce una exception durante Evaluar acción de expresión:
  • cómo evitar el cheque nulo
  • Inyectar types generics en Kotlin con Dagger 2
  • ¿Puedo transformar cadena en expresión de plantilla o expresión lambda en kotlin?
  • retroajuste + desnerializador gson: retorno dentro de la matriz
  • ¿Cuál es la diferencia entre Foo :: class.java y Foo :: javaClass?
  • kotlin, cómo agregar la function de extensión al object compañero de class ya definido
  • No se pudo get la propiedad desconocida 'anko_version' para el object de tipo ...?
  • Dagger2 no se inyecta
  • Cómo kotlin hace que setOnClickListener acepte funciones como parámetro