<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Displaying Callout in Kotlin Maps SDK Questions</title>
    <link>https://community.esri.com/t5/kotlin-maps-sdk-questions/displaying-callout/m-p/1413965#M402</link>
    <description>&lt;P&gt;sometimes it can show, but sometimes can not&lt;/P&gt;</description>
    <pubDate>Tue, 23 Apr 2024 06:11:32 GMT</pubDate>
    <dc:creator>ChanceJason</dc:creator>
    <dc:date>2024-04-23T06:11:32Z</dc:date>
    <item>
      <title>Displaying Callout</title>
      <link>https://community.esri.com/t5/kotlin-maps-sdk-questions/displaying-callout/m-p/1413963#M401</link>
      <description>&lt;P&gt;I am developing a feature using Android's MapView where a callout should appear when a user taps on a polygon graphic. Currently, I am facing an issue where, although the polygon graphic is selected (graphic.isSelected = true), the callout does not display. The logcat outputs "show," indicating that the code to display the callout has been executed.&lt;/P&gt;&lt;P&gt;Here is the relevant part of my code in the fragment:&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;lifecycleScope&lt;/SPAN&gt;.&lt;SPAN&gt;launch &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;mapView &lt;/SPAN&gt;= &lt;SPAN&gt;binding&lt;/SPAN&gt;.&lt;SPAN&gt;mapView&lt;/SPAN&gt;.&lt;SPAN&gt;apply &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;setMap&lt;/SPAN&gt;(requireContext())&lt;BR /&gt;    &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;mapView&lt;/SPAN&gt;.&lt;SPAN&gt;graphicsOverlays&lt;/SPAN&gt;.add(&lt;SPAN&gt;viewModel&lt;/SPAN&gt;.&lt;SPAN&gt;graphicsOverlays&lt;/SPAN&gt;)&lt;BR /&gt;    &lt;SPAN&gt;calloutView &lt;/SPAN&gt;=&lt;BR /&gt;        &lt;SPAN&gt;LayoutInflater&lt;/SPAN&gt;.from(requireContext()).inflate(&lt;SPAN&gt;R&lt;/SPAN&gt;.&lt;SPAN&gt;layout&lt;/SPAN&gt;.&lt;SPAN&gt;layout_callout&lt;/SPAN&gt;, &lt;SPAN&gt;null&lt;/SPAN&gt;).&lt;SPAN&gt;apply &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;            setOnClickListener &lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;                showDetail()&lt;BR /&gt;            &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        }&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;mapView&lt;/SPAN&gt;.singleTapConfirm(&lt;SPAN&gt;viewModel&lt;/SPAN&gt;.&lt;SPAN&gt;graphicsOverlays&lt;/SPAN&gt;, &lt;SPAN&gt;calloutView&lt;/SPAN&gt;)&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;The singleTapConfirm and identifyGraphic functions are defined as follows:&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;suspend fun &lt;/SPAN&gt;&lt;SPAN&gt;MapView&lt;/SPAN&gt;.&lt;SPAN&gt;singleTapConfirm&lt;/SPAN&gt;(&lt;SPAN&gt;graphicsOverlay&lt;/SPAN&gt;: &lt;SPAN&gt;GraphicsOverlay&lt;/SPAN&gt;, &lt;SPAN&gt;contentView&lt;/SPAN&gt;: &lt;SPAN&gt;View&lt;/SPAN&gt;? = &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;    &lt;SPAN&gt;onSingleTapConfirmed&lt;/SPAN&gt;.collect &lt;SPAN&gt;{ &lt;/SPAN&gt;&lt;SPAN&gt;event &lt;/SPAN&gt;&lt;SPAN&gt;-&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;Log&lt;/SPAN&gt;.e(&lt;SPAN&gt;"singleTapConfirm"&lt;/SPAN&gt;,&lt;SPAN&gt;"onSingleTapConfirmed"&lt;/SPAN&gt;)&lt;BR /&gt;        &lt;SPAN&gt;graphicsOverlay&lt;/SPAN&gt;.clearSelection()&lt;BR /&gt;        &lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;get screen point&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;val &lt;/SPAN&gt;&lt;SPAN&gt;screenCoordinate &lt;/SPAN&gt;= &lt;SPAN&gt;event&lt;/SPAN&gt;.&lt;SPAN&gt;screenCoordinate&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        identifyGraphic(&lt;SPAN&gt;screenCoordinate&lt;/SPAN&gt;, &lt;SPAN&gt;graphicsOverlay&lt;/SPAN&gt;)?.&lt;SPAN&gt;let &lt;/SPAN&gt;&lt;SPAN&gt;{ &lt;/SPAN&gt;&lt;SPAN&gt;selectedGraphic&lt;/SPAN&gt;&lt;SPAN&gt;-&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(&lt;SPAN&gt;contentView &lt;/SPAN&gt;!= &lt;SPAN&gt;null&lt;/SPAN&gt;) { &lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;                &lt;SPAN&gt;callout&lt;/SPAN&gt;.show(&lt;SPAN&gt;contentView&lt;/SPAN&gt;,&lt;SPAN&gt;selectedGraphic&lt;/SPAN&gt;)&lt;BR /&gt;                &lt;SPAN&gt;Log&lt;/SPAN&gt;.e(&lt;SPAN&gt;"singleTapConfirm"&lt;/SPAN&gt;,&lt;SPAN&gt;"show"&lt;/SPAN&gt;)&lt;BR /&gt;                &lt;SPAN&gt;selectedGraphic&lt;/SPAN&gt;.&lt;SPAN&gt;isSelected &lt;/SPAN&gt;= &lt;SPAN&gt;true&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;Log&lt;/SPAN&gt;.e(&lt;SPAN&gt;"contentView"&lt;/SPAN&gt;, &lt;SPAN&gt;"contentView is null"&lt;/SPAN&gt;)&lt;BR /&gt;            }&lt;BR /&gt;        &lt;SPAN&gt;} &lt;/SPAN&gt;?: &lt;SPAN&gt;run &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;Log&lt;/SPAN&gt;.e(&lt;SPAN&gt;"contentView"&lt;/SPAN&gt;, &lt;SPAN&gt;"no graphics identified"&lt;/SPAN&gt;)&lt;BR /&gt;&lt;SPAN&gt;//            callout.isAnimationEnabled = false&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;callout&lt;/SPAN&gt;.dismiss()&lt;BR /&gt;        &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    }&lt;BR /&gt;&lt;/SPAN&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;suspend fun &lt;/SPAN&gt;&lt;SPAN&gt;MapView&lt;/SPAN&gt;.&lt;SPAN&gt;identifyGraphic&lt;/SPAN&gt;(&lt;BR /&gt;    &lt;SPAN&gt;screenCoordinate&lt;/SPAN&gt;: &lt;SPAN&gt;ScreenCoordinate&lt;/SPAN&gt;,&lt;BR /&gt;    &lt;SPAN&gt;graphicsOverlay&lt;/SPAN&gt;: &lt;SPAN&gt;GraphicsOverlay&lt;BR /&gt;&lt;/SPAN&gt;): &lt;SPAN&gt;Graphic&lt;/SPAN&gt;? {&lt;BR /&gt;    &lt;SPAN&gt;val &lt;/SPAN&gt;&lt;SPAN&gt;graphics &lt;/SPAN&gt;= &lt;SPAN&gt;mutableListOf&lt;/SPAN&gt;&amp;lt;&lt;SPAN&gt;Graphic&lt;/SPAN&gt;&amp;gt;()&lt;BR /&gt;    &lt;SPAN&gt;val &lt;/SPAN&gt;&lt;SPAN&gt;identifyGraphicsOverlayResult &lt;/SPAN&gt;=&lt;BR /&gt;        identifyGraphicsOverlay(&lt;BR /&gt;            &lt;SPAN&gt;graphicsOverlay&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;screenCoordinate&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;10.0&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;false&lt;/SPAN&gt;,&lt;BR /&gt;            &lt;SPAN&gt;1&lt;BR /&gt;&lt;/SPAN&gt;        )&lt;BR /&gt;    &lt;SPAN&gt;identifyGraphicsOverlayResult&lt;/SPAN&gt;.getOrNull()?.&lt;SPAN&gt;let &lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        it&lt;/SPAN&gt;.&lt;SPAN&gt;graphics&lt;/SPAN&gt;.&lt;SPAN&gt;toMutableList&lt;/SPAN&gt;().&lt;SPAN&gt;forEach &lt;/SPAN&gt;&lt;SPAN&gt;{ &lt;/SPAN&gt;&lt;SPAN&gt;graphic &lt;/SPAN&gt;&lt;SPAN&gt;-&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(&lt;SPAN&gt;graphic&lt;/SPAN&gt;.&lt;SPAN&gt;geometry &lt;/SPAN&gt;&lt;SPAN&gt;is &lt;/SPAN&gt;&lt;SPAN&gt;Polygon&lt;/SPAN&gt;) {&lt;BR /&gt;                &lt;SPAN&gt;graphics&lt;/SPAN&gt;.add(&lt;SPAN&gt;graphic&lt;/SPAN&gt;)&lt;BR /&gt;            }&lt;BR /&gt;        &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;if &lt;/SPAN&gt;(&lt;SPAN&gt;graphics&lt;/SPAN&gt;.&lt;SPAN&gt;isNotEmpty&lt;/SPAN&gt;()) &lt;SPAN&gt;return &lt;/SPAN&gt;&lt;SPAN&gt;graphics&lt;/SPAN&gt;[&lt;SPAN&gt;0&lt;/SPAN&gt;]&lt;BR /&gt;    &lt;SPAN&gt;} &lt;/SPAN&gt;?: &lt;SPAN&gt;run &lt;/SPAN&gt;&lt;SPAN&gt;{ &lt;/SPAN&gt;&lt;SPAN&gt;graphicsOverlay&lt;/SPAN&gt;.clearSelection() &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;return null&lt;BR /&gt;&lt;/SPAN&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;I am not sure why the callout is not displaying even though the polygon is correctly identified and selected. Any suggestions or insights would be greatly appreciated.&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2024 05:59:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/kotlin-maps-sdk-questions/displaying-callout/m-p/1413963#M401</guid>
      <dc:creator>ChanceJason</dc:creator>
      <dc:date>2024-04-23T05:59:26Z</dc:date>
    </item>
    <item>
      <title>Re: Displaying Callout</title>
      <link>https://community.esri.com/t5/kotlin-maps-sdk-questions/displaying-callout/m-p/1413965#M402</link>
      <description>&lt;P&gt;sometimes it can show, but sometimes can not&lt;/P&gt;</description>
      <pubDate>Tue, 23 Apr 2024 06:11:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/kotlin-maps-sdk-questions/displaying-callout/m-p/1413965#M402</guid>
      <dc:creator>ChanceJason</dc:creator>
      <dc:date>2024-04-23T06:11:32Z</dc:date>
    </item>
    <item>
      <title>Re: Displaying Callout</title>
      <link>https://community.esri.com/t5/kotlin-maps-sdk-questions/displaying-callout/m-p/1417185#M408</link>
      <description>&lt;P&gt;Can you make sure that `selectedGraphic` always has a valid geometry associated with it when you call,&lt;/P&gt;&lt;LI-CODE lang="kotlin"&gt;callout.show(contentView,selectedGraphic)&lt;/LI-CODE&gt;&lt;P&gt;&lt;BR /&gt;in the scenarios when the callout does show up vs when it does not show. Also check for the validity of the contentView. Try testing your code by showing the callout with a simple contentView which is just a text view.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="kotlin"&gt;contentView = TextView(applicationContext).apply {
            text = "lorem ipsum"
        }&lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 30 Apr 2024 18:20:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/kotlin-maps-sdk-questions/displaying-callout/m-p/1417185#M408</guid>
      <dc:creator>PuneetPrakash</dc:creator>
      <dc:date>2024-04-30T18:20:25Z</dc:date>
    </item>
  </channel>
</rss>

