2012-04-25 13 views
8

स्पर्श करें मेरे आवेदन में मेरे पास सूचीदृश्य में खोज करने के लिए एक सूचीदृश्य और खोजबार के साथ एक दृश्य है। जब आप सर्चबार टैप करते हैं तो यह फोकस हो जाता है और सॉफ्ट कीबोर्ड चालू हो जाता है। जब मैं सूचीदृश्य को स्पर्श करता हूं तो कीबोर्ड सूचीदृश्य के शीर्ष पर रहता है, इसलिए मुझे अपनी बहुत सी सूचीदृश्य दिखाई नहीं दे रहा है।एंड्रॉइड सॉफ़्ट कीबोर्ड निकालें जब सूचीदृश्य

मेरा प्रश्न: मुझे कैसे पता चलेगा कि सूचीदृश्य को छुआ/स्क्रॉल किया गया है ... और मैं सॉफ्ट कीबोर्ड को कैसे हटा सकता हूं और संपादन से फोकस को हटा सकता हूं?

+0

हाय मैं यहाँ यदि संभव हो तो सवाल है कि तुम मुझे डिफ़ॉल्ट अपनी खोज पट्टी softkeyboard नहीं दिखा रहा है द्वारा बता सकते हैं। के रूप में मेरे एप्लिकेशन Im जैसे ही गतिविधि शुरू होती है सॉफ्टकी बोर्ड पॉप अप हो रहा है। – Manju

उत्तर

3

Take a look at this question पता लगाने के लिए कीबोर्ड को बंद करने के लिए कैसे, यह जानकर अगर सूचीदृश्य स्क्रॉल कर दिया गया है के लिए के रूप में, आप सूचीदृश्य वर्ग का विस्तार करने और onScrollChanged() विधि ओवरराइड और जो कुछ भी आप चाहते हैं जब वे स्क्रॉल

से बातचीत की है करने के लिए कर सकते हैं

संपादित करें: वहाँ वास्तव में एक OnScrollListener को सूचीदृश्य

18

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

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

     } 
    });