当显示PopupWindow并滚动ListView时,锚定项目不在窗口中,适配器将回收该项目的视图。然后PopupWindow开始在屏幕上跳跃,因为它不知道它的原始锚位于何处。
有没有正确的方法来解决这个问题?
答案 0 :(得分:0)
理想情况下,我认为显示PopupWindow不是正确的解决方案。
无论如何,如果你已经有了这个,列表滚动应该关闭PopupWindow因为你已经滚动列表所以保持它没有意义。
答案 1 :(得分:0)
可能的解决方案如下:
Adapter.getView()
返回的视图。在显示PopupWindow
作为下拉列表时,将标记存储在祖父母的标记中。还存储对此gandparent的引用,以及所选的项目ID。Adapter.getView()
中,当请求的商品ID等于所选商品ID时,请使用PopupWindow.update()
将弹出窗口附加到新视图。从旧祖父母中删除标签并更新祖父母参考。Adapter.getView()
中如果您获得具有已标记标记的convertView
,并且所请求的项ID与所选项ID不同,请使用PopupWindow.update()
取消附加弹出窗口祖父母。将祖父母设为null
。这有点复杂,所以我还没有尝试过,但它应该有效,我会在这里写一下,以防有人感兴趣。