3

我目前正在尝试使我的程序在更改选项卡时最小化软键盘。不幸的是,我找不到 TabHost 提供的任何方法或以其他方式检查选项卡何时更改或在选项卡更改时运行方法。我还尝试添加 android:onClick="hideKeyboard" ,其中 hideKeyboard 是一种关闭键盘的方法,但这种方法似乎对选项卡更改没有任何作用。hideKeyboard 的代码如下:

public void hideKeyboard()
{
    InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
    imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
}

还有其他方法可以尝试检测标签更改吗?还是我的 hideKeyboard() 方法有缺陷?

4

1 回答 1

6

我认为OnTabChangeListener是执行此类操作的最佳场所。在你的情况下,它会是这样的:

tabhost.setOnTabChangedListener(new OnTabChangeListener(){
    @Override
    public void onTabChanged(String tabId){
        hideKeyboard()
    }
})
于 2013-02-19T04:58:37.163 回答