以下是xml代码:
我想要实现这样一个功能:当我点击edittext时,软键盘会显示出来。当我滚动listview(不是滚动到OnScrollListener.SCROLL_STATE_IDLE
状态)时,软键盘会隐藏。
我使用了android:windowSoftInputMode="adjustResize"
属性。
以下是xml代码:
我想要实现这样一个功能:当我点击edittext时,软键盘会显示出来。当我滚动listview(不是滚动到OnScrollListener.SCROLL_STATE_IDLE
状态)时,软键盘会隐藏。
我使用了android:windowSoftInputMode="adjustResize"
属性。
使用这个链接检测滚动,
它实现了onScrollListener
,你需要将其设置到你的ListView
中,在它的onScrollStateChanged()
方法中放入以下代码 -
setOnScrollListener(new OnScrollListener(){
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState !=0){
InputMethodManager inputMethodManager = (InputMethodManager)
getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
}
});
InputMethodManager inputMethodManager = (InputMethodManager)
getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
在AS中存在一个bug...
在onScrollStateChange中使用这个替代方法。
InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(absListView.getApplicationWindowToken(), 0);