【问题标题】:How to hide keyboard trhough out application?如何在整个应用程序中隐藏键盘?
【发布时间】:2020-09-16 19:08:13
【问题描述】:

我想要做的是隐藏键盘并在任何编辑文本有焦点时显示它,否则不显示它,但我打算在整个应用程序中实现它。

在我使用的单个活动中:

InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);

除了整个应用程序之外,有没有办法实现这样的事情?任何帮助或建议都会很棒,谢谢

【问题讨论】:

    标签: android keyboard focus


    【解决方案1】:

    创建一个抽象 BaseActivity 类的常见做法,您可以在其中重写 onCreate 方法并调用此代码。每个基于 BaseActivity 的 Activity 都会调用 toggleSoftInput 方法。

    例如:

    abstract public class BaseActivity extends AppCompatActivity {
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
            imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
        }
    }
    

    并且所有的Activity都需要从BaseActivity扩展而不是AppCompatActivity,例如:

    public class MainActivity extends BaseActivity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
        }
    }
    

    打电话给super很重要。

    【讨论】:

    • 感谢您的回复。你能再详细一点吗?
    • 我在答案中添加了一个示例以便更好地理解。
    • 谢谢。我去看看
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 2019-08-12
    • 1970-01-01
    • 2011-09-01
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多