Utilice el grupo en RestricciónDeLiminación para escuchar los events de clics en varias vistas

Básicamente, me gustaría adjuntar un solo OnClickListener a múltiples vistas dentro de un Restricción.

Antes de migrar a ConstraintLayout, las vistas estaban dentro de un layout en el que podía agregar un oyente. Ahora están en la misma capa con otras vistas justo debajo de ConstraintLayout.

Traté de agregar las vistas a un android.support.constraint.Group y agregué un OnClickListener programáticamente.

 group.setOnClickListener { Log.d("OnClick", "groupClickListener triggenetworking") } 

Sin embargo, esto no parece funcionar a partir de la versión 1.1.0-beta2 ConstraintLayout

¿He hecho algo mal, hay alguna forma de lograr este comportamiento o debo adjuntar al oyente a cada una de las vistas individuales?

El Group en ConstraintLayout es solo una asociación de puntos de vista AFAIK. No es un ViewGroup , por lo que no podrá usar un solo oyente de clics como lo hizo cuando las vistas estaban en un ViewGroup .

Como alternativa, puede get una list de los identificadores que son miembros de su Group en su código y establecer explícitamente el oyente de clic. (No he encontrado documentation oficial sobre esta característica, pero creo que está retrasada en el lanzamiento del código).

Java:

  Group group = findViewById(R.id.group); int refIds[] = group.getReferencedIds(); for (int id : refIds) { findViewById(id).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // your code here. } }); } 

Como esta podría ser una característica que puede ser útil más a menudo en Kotlin, puede crear una function de extensión para eso.

Kotlin:

  fun Group.addOnClickListener(listener: View.OnClickListener?) { referencedIds.forEach { id -> rootView.findViewById<View>(id).setOnClickListener(listener) } } ... // then call the function on the group group.addOnClickListener(listener) 
  • ¿Cómo puedo ejecutar Kotlin REPL kotlinc-jvm o kotlinc?
  • constructor de escenas independiente para get el proyecto intellij
  • kotlin 'onCreate' no anula nada
  • Falta el constructor para DialogPreference
  • Tener problemas para escribir en EditText en Kotlin
  • ¿Cómo serializar / deserializar una matriz de objects personalizados en Kotlin?
  • Referencia no resuelta a la function en Kotlin Android
  • ¿Por qué Bundle in Intent se pierde?
  • Smart Cast no funciona como se esperaba
  • ¿Cómo trabajar con foldRight () en Kotlin?
  • ¿Cómo hacer valer un String vacío y no nulo en Kotlin?