<?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 MapView layout nonsense in ArcGIS Runtime SDK for Android Questions</title>
    <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-android-questions/mapview-layout-nonsense/m-p/469718#M3197</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can someone please explain why does MapView call &lt;/SPAN&gt;&lt;STRONG&gt;requestLayout()&lt;/STRONG&gt;&lt;SPAN&gt; on parent (or any other method that in turn leads to requestLayout() getting called) every time you move map with touch action? Pinching it doesn't have such effect. It makes no sense knowing what requestLayout() actually does. Is it a bug?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Requesting layout leads to onMeasure() and onLayout() getting called, so this strange MapView behavior makes it impossible to use it with DrawerLayout and custom layouts (or anything that uses ViewDragHelper or offsets layout).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In addition to that, deeper view hierarchies slow everything like crazy.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
public class MapActivity extends Activity {
 
&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onCreate(Bundle savedInstanceState) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onCreate(savedInstanceState);

&amp;nbsp; MapView map = new MapView(this);
&amp;nbsp; map.addLayer(new OpenStreetMapLayer());
&amp;nbsp; 
&amp;nbsp; CustomLayout layout = new CustomLayout(this);
&amp;nbsp; layout.addView(map);
&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setContentView(layout);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; public static class CustomLayout extends FrameLayout {

&amp;nbsp; public CustomLayout(Context context) {
&amp;nbsp;&amp;nbsp; super(context);
&amp;nbsp; }

&amp;nbsp; @Override
&amp;nbsp; public void requestLayout() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Log.d("wtf", "requestLayout()");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.requestLayout();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 20 Aug 2013 09:38:17 GMT</pubDate>
    <dc:creator>JuliusBagdonas</dc:creator>
    <dc:date>2013-08-20T09:38:17Z</dc:date>
    <item>
      <title>MapView layout nonsense</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-android-questions/mapview-layout-nonsense/m-p/469718#M3197</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can someone please explain why does MapView call &lt;/SPAN&gt;&lt;STRONG&gt;requestLayout()&lt;/STRONG&gt;&lt;SPAN&gt; on parent (or any other method that in turn leads to requestLayout() getting called) every time you move map with touch action? Pinching it doesn't have such effect. It makes no sense knowing what requestLayout() actually does. Is it a bug?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Requesting layout leads to onMeasure() and onLayout() getting called, so this strange MapView behavior makes it impossible to use it with DrawerLayout and custom layouts (or anything that uses ViewDragHelper or offsets layout).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;In addition to that, deeper view hierarchies slow everything like crazy.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
public class MapActivity extends Activity {
 
&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onCreate(Bundle savedInstanceState) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.onCreate(savedInstanceState);

&amp;nbsp; MapView map = new MapView(this);
&amp;nbsp; map.addLayer(new OpenStreetMapLayer());
&amp;nbsp; 
&amp;nbsp; CustomLayout layout = new CustomLayout(this);
&amp;nbsp; layout.addView(map);
&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; setContentView(layout);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; public static class CustomLayout extends FrameLayout {

&amp;nbsp; public CustomLayout(Context context) {
&amp;nbsp;&amp;nbsp; super(context);
&amp;nbsp; }

&amp;nbsp; @Override
&amp;nbsp; public void requestLayout() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Log.d("wtf", "requestLayout()");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.requestLayout();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Aug 2013 09:38:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-android-questions/mapview-layout-nonsense/m-p/469718#M3197</guid>
      <dc:creator>JuliusBagdonas</dc:creator>
      <dc:date>2013-08-20T09:38:17Z</dc:date>
    </item>
  </channel>
</rss>

