Я создал пользовательское InfoWindow для своего приложения для Android.Это работает, я вижу свои собственные данные внутри него.
Я хочу знать, как сделать клик заголовка и всего контента по одному за раз?
Я генерирую некоторые данные ипоказывая их, я хочу иметь возможность щелкать по каждому текстовому представлению, которое я создаю.
Я видел, что маркер работает как и изображение, есть способ избежать этого (когда я нажимаю наназвание, щелкает блок дырок)
См. мой InfoWindo:
class InfoWindowCustom(internal var context: Context, internal var mMap: GoogleMap, internal val idItem: String, internal val listeArrets: JSONArray, internal val name : String) : GoogleMap.InfoWindowAdapter {
internal lateinit var inflater: LayoutInflater
private val TAG = InfoWindowCustom::class.java.simpleName
/* some variables ...*/
override fun getInfoContents(marker: Marker): View? {
return null
}
override fun getInfoWindow(marker: Marker): View {
inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
val v = inflater.inflate(R.layout.custom_info_window, null)
val title = v.findViewById<TextView>(R.id.title)
title.text = name
val loader = v.findViewById<TextView>(R.id.loadingArretProxi)
Log.i("Proximite", "$name infoWindow")
if(listeArrets.length() > 0){
loader.visibility = View.GONE
(0 until listeArrets.length()).forEach {
val item = listeArrets.getJSONObject(it)
val code = item.getString("code")
val linearLayoutRes = v.findViewById<LinearLayout>(R.id.resMarkerHoraire)
val linearLayoutResultArret = LinearLayout(this.context)
linearLayoutResultArret.layoutParams = lpmm
linearLayoutResultArret.setPadding(30,15,15,15)
linearLayoutResultArret.setBackgroundColor(colorWhite)
linearLayoutResultArret.weightSum = 1F
linearLayoutResultArret.orientation = LinearLayout.HORIZONTAL
linearLayoutRes.addView(linearLayoutResultArret)
val ligne = TextView(this.context)
lpww.weight = 0.1F
ligne.layoutParams = lpww
ligne.text = code
ligne.textAlignment = TextView.TEXT_ALIGNMENT_CENTER
ligne.background = lignea
ligne.setTextColor(colorBlack)
}
}
mMap.setOnInfoWindowClickListener {
val bundle = Bundle()
bundle.putString("datafirst", idItem)
bundle.putString("datasecond", marker.title)
val fragment = Result()
fragment.arguments = bundle
val fragmentManager = (context as AppCompatActivity).supportFragmentManager
val fragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack(null)
fragmentTransaction.commit()
}
return v
}
}