我在地图上有数以千计的注释。每个注释都是一个独特的图像。因此,除非用户要求,否则我不想在地图上加载所有图像。
我的注释有这个属性:
detailCalloutView: <Image source={{uri: data[i].img_url, cache: 'force-cache'}} style={styles.thumbnail} resizeMode={Image.resizeMode.contain}/>
如何在打开注释时仅加载图像?我不想通过打开所有注释来粉碎千兆字节的数据。
我想我需要对onFocus
做点什么,但我不太确定如何。
答案 0 :(得分:0)
更改此
detailCalloutView: <Image source={{uri: data[i].img_url, cache: 'force-cache'}} style={styles.thumbnail} resizeMode={Image.resizeMode.contain}/>
到此
detailCalloutView: <Image source="blanking.jpg" data-annotation={{uri: data[i].img_url, cache: 'force-cache'}} style={styles.thumbnail} resizeMode={Image.resizeMode.contain}/>
然后为地图中的所有图像添加一个事件监听器
var attr = this.getAttribute("data-annotation");
this.src = attr;
这是要添加的主要内容。现在即使关闭它也不必再次加载,因为src
将永远是实际图像。我不打算为你包装整个JavaScript,但你应该从中获得要点。