gpt4 book ai didi

android - 在 Android 中隐藏键盘的最佳方式

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:48:12 25 4
gpt4 key购买 nike

我想知道在向 EditText 输入文本后隐藏键盘的最佳方法。

1) setonfocuschangelistener :是否仅在按下完成按钮或焦点从一个 EditText 更改为另一个时触发此监听器?当我使用这种方法时,我无法隐藏键盘。

2) setOnTouchListener :当我使用它时,我可以隐藏键盘,但我怀疑这可能有问题。在这种情况下,我将触摸监听器添加到根 LinearLayout。下面是我使用的代码:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);

txtUserName = (EditText)findViewById(R.id.txtUserName);
btnLogin = (Button)findViewById(R.id.btnLogin);
layoutView = (LinearLayout)findViewById(R.id.li);

layoutView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(txtUserName
.getWindowToken(), 0);
return true;
}
});
}

在主 LinearLayout 中,我正在使用其他两个 LinearLayout。我遇到上述代码的问题是,在某些时候,当我按下时,键盘不会隐藏。我的疑问是我只在根布局中添加触摸监听器,而不是在其他内部布局或其他控件(TextView)中添加触摸监听器。当我触摸其他控件或 TextView 周围的某些点(即内部布局)时,键盘不会隐藏。

这意味着我需要将 touchListener 添加到根布局内的所有布局或控件吗?如何更好地处理这种情况?

最佳答案

您可以使用此代码

InputMethodManager imm = 
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mEditView.getWindowToken(), 0);

关于android - 在 Android 中隐藏键盘的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10550290/

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