如何默认隐藏键盘并仅在单击 EditText 时显示 [重复]

Posted

技术标签:

【中文标题】如何默认隐藏键盘并仅在单击 EditText 时显示 [重复]【英文标题】:How to hide keyboard by default and show only when click on EditText [duplicate] 【发布时间】:2013-05-05 21:59:12 【问题描述】:

我的活动中有多个 Edittext 我想在视图显示时通过默认键盘隐藏并仅在单击 edittext 时显示键盘 我不知道该怎么做 谢谢提前:)

【问题讨论】:

有很多答案,没有一个有效? 这里也给你一个 hack,只是在你的 xml 文件中添加了一个线性布局。 gist.github.com/XinyueZ/cc0be271686491dcf6e6 【参考方案1】:

试试这个。

@Override
protected void onResume() 
    // TODO Auto-generated method stub
    super.onResume();

    answer_et.postDelayed(new Runnable() 
    @Override
    public void run() 
        InputMethodManager imm = (InputMethodManager)getSystemService(
        Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(edit_text.getWindowToken(), 0);
        
    , 100);


有时edittext在手动隐藏软键盘后获得焦点。

所以,延迟 100 毫秒,然后在 onResume() 方法中强制隐藏它。

【讨论】:

或者只是在顶部布局中添加一个视图,作为第一个视图,例如:

以上是关于如何默认隐藏键盘并仅在单击 EditText 时显示 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

StreamBuilder snapshot.hasError 在键盘显示/隐藏颤动时显示多次

单击EditText时如何隐藏键盘不显示

如何从编辑文本中删除键盘,但单击编辑文本时显示键盘?

如何在editText聚焦时隐藏键盘

单击或触摸另一个视图时清除EditText焦点并隐藏键盘

尝试不显示当我单击表单的 EditText 之一时显示的按钮