ArcGIS API for Android解惑:Callout不能调整弹出框大小

来源:互联网 发布:高清网络电视在线观看 编辑:程序博客网 时间:2024/06/06 06:36

项目需求:
手指点击MapView上的点,用Callout弹窗的方式将该点的属性信息显示出来。


问题描述:
Callout具体的使用方法在这里就不多说了,具体可参考文章:http://blog.csdn.net/vaecer/article/details/8804127,里面介绍的很详细。
在使用Callout过程中由于我的布局文件比较复杂,默认Callout的长宽都不能满足要求,因此需要更改Callout的最大宽度和最大高度,在官方API文档中查到到Callout有 setMaxWidth(int maxWidth) 方法和 setMaxHeight(int maxHeight) 方法,看着挺简单的,可是一开始无论怎么设置都不起作用,MapView中显示的Callout还是默认的那么大。


解决方法:
Callout的 setMaxWidth 和 setMaxHeight 方法在使用中有几个注意点:

1、Xml布局文件中可将对应的“fill_parent”或“wrap_content”修改为具体的“200dp”,这是很关键的,也是具有决定作用的,因为后边所设置的只是最大宽度和高度,Callout显示的大小还是以你的xml布局文件为准。

2、这也是关键一部,在java代码中最大宽高的设置应放置在 Callout.show( )方法之后,如下图所示:

这里写图片描述

我实验证明,宽高设置如果放置在show方法之前的话,一切都白玩,此灵感来自于文章:http://www.cnblogs.com/gisoracle/p/5250624.html。

如此一来,你就可以随心所欲的控制Callout的大小了!That’s all.

2 0