2012-04-25 34 views
8

Trong ứng dụng của tôi, tôi có chế độ xem với chế độ xem danh sách và thanh tìm kiếm để tìm kiếm trong chế độ xem danh sách. Khi bạn nhấn vào thanh tìm kiếm, nó sẽ lấy tiêu điểm và bàn phím mềm sẽ bật lên. Khi tôi chạm vào listview bàn phím ở trên đầu của listview, do đó tôi không thể nhìn thấy rất nhiều listview của tôi.Android Xóa Bàn phím mềm khi chạm vào chế độ xem danh sách

Câu hỏi của tôi: Làm cách nào để biết liệu chế độ xem danh sách đã được chạm/cuộn/... và làm cách nào để loại bỏ bàn phím mềm VÀ loại bỏ tiêu điểm khỏi văn bản?

+0

Hi tôi có câu hỏi ở đây nếu có thể bạn có thể cho tôi biết theo mặc định thanh tìm kiếm của bạn không hiển thị các softkeyboard. Im ứng dụng của tôi như ngay khi hoạt động bắt đầu, bảng softkey đang bật lên. – Manju

Trả lời

3

Take a look at this question để tìm hiểu cách đóng bàn phím, để biết liệu chế độ xem danh sách đã được cuộn hay chưa, bạn có thể mở rộng lớp listview và ghi đè phương thức onScrollChanged() và thực hiện bất cứ điều gì bạn muốn khi cuộn tương tác với

Edit: có thực sự là một OnScrollListener để lắng nghe những thay đổi cuộn trong một listview

18

Dựa trên câu trả lời @androidnoob, tôi gửi ở đây (đối với những người khác có vấn đề cụ thể này) đầy đủ các mã cần thiết.

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) { } 
    }); 
2

yourListView.setOnScrollListener (AbsListView.OnScrollListener mới() {

 @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) { 

     } 
    }); 
Các vấn đề liên quan