在我的應用程序中,我有一個列表視圖和一個用於在列表視圖中搜索的搜索欄。當您點擊搜索欄時,它會獲得焦點,軟鍵盤會亮起。當我觸摸列表視圖時,鍵盤停留在列表視圖的頂部,因此我看不到很多列表視圖。Android在移動列表視圖時刪除軟鍵盤
我的問題: 如何知道列表視圖是否被觸摸/滾動/ ...以及如何刪除軟鍵盤並從edittext中刪除焦點?
在我的應用程序中,我有一個列表視圖和一個用於在列表視圖中搜索的搜索欄。當您點擊搜索欄時,它會獲得焦點,軟鍵盤會亮起。當我觸摸列表視圖時,鍵盤停留在列表視圖的頂部,因此我看不到很多列表視圖。Android在移動列表視圖時刪除軟鍵盤
我的問題: 如何知道列表視圖是否被觸摸/滾動/ ...以及如何刪除軟鍵盤並從edittext中刪除焦點?
Take a look at this question找出如何關閉鍵盤,爲知道,如果ListView控件已滾動,你可以擴展列表視圖類並覆蓋onScrollChanged()方法,並做你想做的,當他們滾動被交互
編輯:這裏居然是一個OnScrollListener監聽在ListView
基於@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) { }
});
yourListView.setOnScrollListener(新AbsListView.OnScrollListener(){
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState != 0){
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(yourEditText.getWindowToken(), 0);
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
});
嗨,我有問題在這裏如果可能的話,你可以在默認情況下搜索欄沒有顯示softkeyboard告訴我。我的IM應用程序如一旦活動開始軟鍵盤彈出。 – Manju 2012-05-10 14:19:37