Mak*_*ele 6 android refresh autocompletetextview drop-down-menu
这是我的问题:
在我的 Android 应用程序中,我使用 AutoCompleteTextView 并每 5 秒刷新一次项目列表。当我调用notifyDataSetChanged() 时,刷新正在工作。但是当我在这里输入一些内容时,它会给我匹配项目的列表,然后我手动关闭它,当另一个线程刷新列表并调用notifyDataSetChanged()时,下拉列表会自动显示(即使我之前关闭了它)。这真的很烦人,因为如果列表很长,它会占据整个屏幕,关闭后它会在另外 5 秒内出现。我在调用notifyDataSetChanged()后尝试dismissDropDown(),但没有任何效果。看起来下拉菜单的显示有一点延迟。这也不是修复它的好方法,因为如果用户没有关闭列表,它会在刷新后关闭。也尝试转移焦点——仍然没有效果。
所以我需要一种方法:更新我的项目列表(通过notifyDataSetChanged())而不自动显示下拉列表,但如果下拉列表已经显示,则不要关闭它。
希望你能帮忙,
干杯
我终于做到了。我在这里发布一个解决方案,也许有人会使用这个。
检查下拉菜单是否可见:
final boolean isVisible = autocomplete.isPopupShowing();
Run Code Online (Sandbox Code Playgroud)
接下来,调用notifyDataSetChanged(),
最后:
new Handler().post(new Runnable(){
@Override
public void run() {
if(!isVisible){
autocomplete.dismissDropDown();
}
}
});
Run Code Online (Sandbox Code Playgroud)
这非常有效。
我也遇到了这个问题,我觉得是个bug,我通过以下方式解决了这个问题
首先将 AutoCompleteTextView focusable 属性设置为 false。
其次,在该视图的 onTouch 事件中将 AutoCompleteTextView focusable 属性更改为 true。为此,您必须为 AutoCompleteTextview 实现 onTouchListener。
每当您触及 AutoCompleteTextView 时,您都应该将 focusable 属性更改为 true,否则将其 focusable 属性设置为 false。这样当视图处于不可聚焦状态时,下拉列表永远不会出现。
仅当视图处于可聚焦状态时,它才会自动显示下拉列表,这对用户来说很烦人,否则效果很好。
| 归档时间: |
|
| 查看次数: |
3274 次 |
| 最近记录: |