Android在触摸列表视图时删除软键盘

Tim*_*vos 9 android android-listview android-edittext

在我的应用程序中,我有一个带有列表视图和搜索栏的视图,可以在列表视图中进行搜索.当您点击搜索栏时,它会获得焦点并且软键盘会亮起.当我触摸列表视图时键盘保持在列表视图的顶部,因此我看不到很多我的列表视图.

我的问题:如何知道列表视图是否被触摸/滚动/ ...以及如何删除软键盘并从编辑文本中删除焦点?

Dr.*_*iji 17

根据@androidnoob的答案,我在这里(对于其他有这个特定问题的人)发布所需的完整代码.

list.setOnScrollListener(new OnScrollListener() {
     public void onScrollStateChanged(AbsListView view, int scrollState) {
             //hide KB
             InputMethodManager imm =  (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
             imm.hideSoftInputFromWindow(colleagueSearch.getWindowToken(), 0);
            }

            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { }
   });
Run Code Online (Sandbox Code Playgroud)


And*_*oob 3

看一下这个问题,了解如何关闭键盘,至于知道listview是否已滚动,您可以扩展listview类并重写onScrollChanged()方法,并在与滚动交互时执行您想要的操作

编辑:实际上有一个OnScrollListener来监听列表视图中的滚动变化