gpt4 book ai didi

android - 如何强制隐藏软键盘

转载 作者:行者123 更新时间:2023-11-29 01:39:42 25 4
gpt4 key购买 nike

由于这个主题很受欢迎,我不得不说我搜索了很多类似的问题,但仍然没有一个可行的解决方案。

问题简短描述:在我的Activity中我有一个“搜索模式”,当它开始时我显示软键盘,当它结束时,我想隐藏键盘,但找不到一种方法。

我尝试过的:

  • 使用标志 InputMethodManager.HIDE_IMPLICIT_ONLY 而不是 0
  • 使用标志 InputMethodManager.HIDE_NOT_ALWAYS 而不是 0
  • 设置windowSoftInputMode="stateAlwaysHidden"
  • 设置windowSoftInputMode="stateHidden"

似乎没有任何效果,键盘仍然可见。启动“搜索模式”的代码:

     private void onStartSearch(){
isSearch = true;
tvMyFriends.setVisibility(View.GONE);
etSearch.setVisibility(View.VISIBLE);
etSearch.startAnimation(AnimationUtils.loadAnimation(this, R.anim.on_show_search));
etSearch.requestFocus();
invalidateOptionsMenu();
imm.showSoftInput(etSearch, InputMethodManager.SHOW_IMPLICIT);
}

完成“搜索模式”的代码:

     private void onCancelSearch(){
Animation animHideSearch = AnimationUtils.loadAnimation(this, R.anim.on_cancel_search);
animHideSearch.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
/* no action required */
}

@Override
public void onAnimationEnd(Animation animation) {
etSearch.setVisibility(View.GONE);
tvMyFriends.setVisibility(View.VISIBLE);
isSearch = false;
invalidateOptionsMenu();
if(etSearch.getText().toString().length()>0)
etSearch.setText("");
etSearch.clearFocus();
imm.hideSoftInputFromInputMethod(etSearch.getWindowToken(), 0);
}

@Override
public void onAnimationRepeat(Animation animation) {
/* no action required */
}
});
etSearch.startAnimation(animHideSearch);
}

问题:我怎样才能强制该死的键盘消失?

UPD:设置赏金。仍在寻找一个可靠的、独立于设备的解决方案来强制隐藏软键盘或检测键盘当前是否正在显示。

最佳答案

在将 EditText 的可见性更改为 GONE 之前隐藏键盘。

...
imm.hideSoftInputFromWindow(etSearch.getWindowToken(), 0);
etSearch.setVisibility(View.GONE);
...

关于android - 如何强制隐藏软键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25515223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com