How do I hide the soft keyboard when changing tabs?

后端 未结 5 1423
耶瑟儿~
耶瑟儿~ 2021-01-05 13:06

EDIT : Seems I\'m not making myself clear. What I need is a way to hide the soft keyboard whenever i replace the fragment I am in. How do I go about doing this ?

5条回答
  •  死守一世寂寞
    2021-01-05 14:09

    set OnPageChangeListener to viewpager in mainActivity Where you add fragments to viewPager

      viewPager.setOnPageChangeListener(myOnPageChangeListener);
    
    
    
    
       ViewPager.OnPageChangeListener myOnPageChangeListener =
                new ViewPager.OnPageChangeListener() {
    
                @Override
                public void onPageScrollStateChanged(int state) {
                    //Called when the scroll state changes.
    
                }
    
                @Override
                public void onPageScrolled(int position,
                                           float positionOffset, int positionOffsetPixels) {
                    //This method will be invoked when the current page is scrolled,
                    //either as part of a programmatically initiated smooth scroll
                    //or a user initiated touch scroll.
    
                    hideKeyboard();
                }
    
                @Override
                public void onPageSelected(int position) {
                    //This method will be invoked when a new page becomes selected.
                    //hide keyboard when any fragment of this class has been detached
                    hideKeyboard();
                }
            };
    
    
    
    
    
    
    
    public  void hideKeyboard() {
        InputMethodManager inputManager = (InputMethodManager)getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
    
        // check if no view has focus:
        View v = getCurrentFocus();
        if (v == null)
            return;
    
        inputManager.hideSoftInputFromWindow(v.getWindowToken(), 0);
    }
    

提交回复
热议问题