Hacer reference a las vistas con la misma identificación en diferentes layouts con extensiones de android kotlin

En mi proyecto de Android tengo dos layouts: num_info y num_info_pack. Ambos tienen vistas con id "círculo". Así que pensé que hacer reference a esas vistas mediante layout_name.circle resolvería el problema:

val inetView = activity.layoutInflater.inflate(R.layout.num_info_pack, parent, false) inetView.circle.setBackgroundResource(background) 

Pero el círculo está subrayado con rojo y dice:

Sobrecarga de ambigüedad de resolución. Todas estas funciones coinciden.

public val View.circle: ¡Ver! definido en kotlinx.android.synthetic.main.num_info_pack.view

public val View.circle: RelativeLayout! definido en kotlinx.android.synthetic.main.num_info_inet_plus_pack.view

¿Por qué está confundido acerca de qué círculo estoy hablando si específicamente estoy diciendo inetView.circle?

La solución aquí está en las importaciones. Debe importar dos layouts como

 import kotlinx.android.synthetic.main.num_info_pack 

y

 import kotlinx.android.synthetic.main.num_info_inet_plus_pack 

Elimine uno de ellos y conserve uno con el file de layout apropiado que desea importar. Debería funcionar bien.

No tengo el estudio de Android en la mano ahora, pero creo que esto resolverá tu problema:

 package XXX import kotlinx.android.synthetic.main.num_info_inet_plus_pack.view.circle as inetViewCircle import kotlinx.android.synthetic.main.num_info_pack.view as circle //... val inetView = activity.layoutInflater.inflate(R.layout.num_info_pack, parent, false) inetViewCircle.setBackgroundResource(background) 

No sé si esto funcionará porque no puedo probarlo ahora mismo. Por favor, hágame saber si está funcionando.

El problema es un choque de nombres, por lo que creo que importar alias puede ayudar.

Además de las ya muy buenas respuestas, si tiene los mismos ID en múltiples layouts en su proyecto, no debería importar cuál elija. Los ID similares, independientemente del layout que se haya definido, terminan apuntando a la misma vista. Por lo tanto, puede descartar las otras importaciones, dejando solo los layouts que le interesan en la activity/fragment/view actual

Espero que ayude