android-隐藏软键(永久),同时改变活动
问题描述:
我的智能手机有软键,我想永久隐藏在我的APP中。 我使用下面的功能来隐藏软键。android-隐藏软键(永久),同时改变活动
public void setFullscreen(boolean fullscreen) {
WindowManager.LayoutParams attrs = getWindow().getAttributes();
if (fullscreen) {
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
attrs.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
attrs.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
}
else {
attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
attrs.flags &= ~WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
attrs.flags &= ~WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
}
getWindow().setAttributes(attrs);
View v = this.getWindow().getDecorView();
v.setSystemUiVisibility(View.GONE);
}
我呼吁在所有的onCreate那activitys功能,之前的保护无效的onCreate(捆绑savedInstanceState) 像这样..
@Override
protected void onCreate(Bundle savedInstanceState)
{
setFullscreen(true);
super.onCreate(savedInstanceState);
setContentView(R.layout.myLayout);
}
问题:我改变了活动和软键出现,再次隐藏。我如何防止他们出现?
我也用“stateHidden”清单中的所有activitys
<activity
android:name=".myActivity"
android:windowSoftInputMode="stateHidden" />
希望你能帮助我了......非常感谢! :)
答
终于!这是一个解决方案。谢谢!
private void hideSystemUI() {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
public void setFullscreen(boolean fullscreen) {
WindowManager.LayoutParams attrs = getWindow().getAttributes();
if (fullscreen) {
attrs.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
attrs.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
attrs.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
attrs.flags |= WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN;
}
else {
attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
attrs.flags &= ~WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
attrs.flags &= ~WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
}
getWindow().setAttributes(attrs);
hideSystemUI();
}
请参考以下链接https://*.com/questions/18977187/how-to-hide-soft-keyboard-when-activity-starts – Ankita
@Ankita它不工作.. :( – MarieSophie90
@ MarieSophie90使用WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE禁用软键 –