我的问题是:
在我的安卓应用程序中,我使用AutoCompleteTextView并每5秒刷新一次条目列表。当我调用notifyDataSetChanged()时,刷新正在工作。但是,当我在这里输入某项时,它会给出匹配项的列表,然后手动关闭它,当另一个线程正在刷新列表并调用notifyDataSetChanged()下拉列表时,它将自动显示(即使我之前关闭了它)。这真的很烦人,因为如果列表很长,它需要整个屏幕,关闭后,它会在另一个5秒内出现。在调用dismissDropDown()之后,我尝试了notifyDataSetChanged(),但是它没有任何效果。看上去下拉显示有点延迟。它也不是修复它的好方法,因为如果用户没有关闭列表,它将在刷新后关闭。也试图把注意力转移--仍然没有效果。
因此,我需要一个方法:更新我的项目列表(通过notifyDataSetChanged()),而不自动显示下拉列表,但是如果已经显示下拉列表,请不要关闭它。
希望你能帮上忙
干杯
我终于做到了。我在这里发了个解决方案,也许有人会用这个。
若要检查下拉列表是否可见,请执行以下操作:
final boolean isVisible = autocomplete.isPopupShowing();
接下来,调用notifyDataSetChanged(),
最后:
new Handler().post(new Runnable(){
@Override
public void run() {
if(!isVisible){
autocomplete.dismissDropDown();
}
}
});
这工作得很好。
发布于 2014-07-18 03:57:44
我也有这个问题,我想这似乎是个错误,我用以下方法解决了这个问题
首先,将AutoCompleteTextView可聚焦属性设置为false。
第二,在必须将AutoCompleteTextview实现为AutoCompleteTextView的view.For的onTouch事件中,将view.For可聚焦属性更改为true。
每当您触及该AutoCompleteTextView时,您都应该将可聚焦属性更改为true,否则将其焦点保持为false。这样,当视图处于不可聚焦状态时,就不会出现下拉列表。
它自动显示下拉列表,只有当视图处于可聚焦状态时,用户才会感到厌烦,否则它就会正常工作。
https://stackoverflow.com/questions/9669385
复制相似问题