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í

  • Cómo ejecutar algún código cuando Gradle está construyendo las testings
  • Tipo no coincidente, nodo requerido, cadena encontrada
  • Glide no puede cargar la URL de la image del server
  • Cómo usar Realm en una biblioteca
  • ¿A los miembros protegidos no se puede acceder en las funciones de extensión?
  • La cobertura de código de estudio de Android no muestra ninguna class de Kotlin
  • Android Dagger: no puedo proporcionar una class externa sin el constructor @Inject
  • Android: ¿Cómo llamar a la function ndk de Kotlin?
  • Establecer el setter de una interfaz en la class que lo implementa
  • Kotlin JSR-223 ScriptEngineFactory dentro del contenedor de grasa - No se puede encontrar el comstackdor de kotlin
  • ¿Cómo puedo dividir la secuencia del número integer en ranges (java \ kotlin)