高德地图 自定义 InfoWindow 添加 RecyclerView 问题
这是一个棘手的问题,在高德地图中,添加了自定义的 InfoWindow,然后想在自定义 InfoWindow 中添加一下 RecyclerView 实现多个事项的展现,结果在 InfoWindow 中添加了 RecyclerView 之后,RecyclerView 并不会显示内容,只是显示一个空白,而且不管是改变 Item 布局的背景还是 RecyclerView 的背景,都不会有所改变,经过了各方资料查证和自己的琢磨,总算是找到了一个自己还算是满意的答案。
其实这个问题解释起来很简单,而且在高德官方提供的 API 中其实已经给与了解释,只是自己太粗心没有注意到而已:
所以如果是自定义的 InfoWindow 添加 RecyclerView 的话,只需要先添加数据,然后再去调用 recyclerView.setAdapter(recyclerAdapter);
方法或者是自己再去完成一下 InfoWindow 的内容更新方法即可,而且在 API 中明确指出了,自定义的 InfoWindow 更新的时候,不要去调用 showInfoWindow()
方法,否则内容不会显示更新,还是会显示一样的。根据不同自定义 InfoWindow 的情况,那么自己完成的更新方法也是不一样的,比如如果自定义的 InfoWindow 中添加的是 ListView 或者 RecyclerView,那么可以在适当的地方添加一句 adapter.notifyDataSetChanged();
这样就可以完成更新,如果是其他的控件,则需要根据控件的不同来选择自己合适的方法。
基本上过程中碰到的问题就是这么多,做个记录方便以后查看,如果有什么想说的,欢迎留言讨论。