Java 在android中使用该方法移动另一个选项卡后,如何隐藏键盘?

Java 在android中使用该方法移动另一个选项卡后,如何隐藏键盘?,java,android,android-studio,android-fragments,tabs,Java,Android,Android Studio,Android Fragments,Tabs,在android中使用该方法移动另一个选项卡后,如何隐藏键盘? 我的代码在选项卡中切换-如何隐藏keybord public Fragment getItem(int position) { Fragment fragment = null; switch (position){ case 0: fragment = new Tab1Fragment(); break;

在android中使用该方法移动另一个选项卡后,如何隐藏键盘? 我的代码在选项卡中切换-如何隐藏keybord

public Fragment getItem(int position) {
        Fragment fragment = null;
        switch (position){
            case 0:
                fragment = new Tab1Fragment();
                break;
            case 1:
                fragment = new Tab2Fragment();
                break;
            default:
                fragment = null;
                break;
        }
        return fragment;
    }

将下面的代码以片段形式放入onCreate()中

        getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);// for hide keypad

我是用以下方法做的:

public void hideSoftKeyboard(View viewFocus) {
        // Check if no view has focus:
        if (viewFocus != null) {
            InputMethodManager imm = (InputMethodManager) viewFocus.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(viewFocus.getWindowToken(), 0);
        }
    }
在Activity/Fragment中调用此方法,如下所示:

hideSoftKeyboard(getCurrentFocus())

希望它能帮助你

您可以使用此方法隐藏键盘:

    public static void hideKeyboard(Activity act){
        View view = act.getCurrentFocus();
        if (view != null) {
            InputMethodManager imm = (InputMethodManager)act.getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
        }
    }
无论你在什么地方开始你的工作,都可以这样称呼它,比如:

 tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            viewPager.setCurrentItem(tab.getPosition());
           hideKeyboard(myActivity);
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });

您是否尝试过在单击另一个片段时以编程方式关闭键盘?关于主要活动?@AlhamsyaBintangDyasta在每个片段的创建视图中