我曾经使用TabHost
来设置我的标签,但是按照人们的建议,我使用ActionBar.Tab
重写了我的代码。在我的旧版本代码中,我按以下方式切换标签时隐藏了键盘:
// Hide Keyboard when changing tab
th.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
switch (th.getCurrentTab()) {
case 0:
imm.hideSoftInputFromWindow(tab1.getWindowToken(), 0);
break;
case 2:
imm.hideSoftInputFromWindow(tab1.getWindowToken(), 0);
break;
}
}
});
我尝试使用类似的方法,但我不知道如何getWindowToken
用于ActionBar.Tab
。有什么建议吗?
答案 0 :(得分:1)
if(mActivity.getCurrentFocus() != null) {
InputMethodManager imm = (InputMethodManager)mActivity.getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mActivity.getCurrentFocus().getWindowToken(), 0);
}
获取当前焦点,并使用它来获取Window Token。我的听众正在传递一个片段和活动(动态),因此我用它来获得重点。