【问题标题】: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很重要。