Im new on android please help me to auto hide after scrolling the listview here is my code but could not get right solution
xml file :
<ListView
android:id="@+id/offline_list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#dde1e3"
android:clickable="true"
android:focusable="true"
>
</ListView>
code:
lvCustomList.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if(!hasFocus)
hideKeyboard(v);
}
private void hideKeyboard(View view) {
// TODO Auto-generated method stub
InputMethodManager inputMethodManger = (InputMethodManager)getSystemService(Activity
.INPUT_METHOD_SERVICE);
inputMethodManger.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
});
Try this..
why don't you use OnTouchListener
for ListView
like below
lvCustomList.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
return false;
}
});
It is better to use onScrollStateChanged
instead of onScroll
and by using scrollState == 0
. So keyboard will hide when user is really scrolling.
listview.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view,
int scrollState) {
if (scrollState == 0) {
InputMethodManager inputMethodManger = (InputMethodManager) getActivity().getSystemService(Activity
.INPUT_METHOD_SERVICE);
inputMethodManger.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
});
Try this one.
listview.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view,
int scrollState) { // TODO Auto-generated method stub
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
InputMethodManager inputMethodManger = (InputMethodManager)getSystemService(Activity
.INPUT_METHOD_SERVICE);
inputMethodManger.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
});
Hope it helps. Cheers!