此为始终显示或始终隐藏虚拟按键的方案。
import android.annotation.SuppressLint;
import android.view.View;
public class AppActivity extends Cocos2dxActivity {
@SuppressLint("NewApi")
private void handleNavigationBar() {
int uiFlags = View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
if (android.os.Build.VERSION.SDK_INT >= 19) {
uiFlags |= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
// SYSTEM_UI_FLAG_IMMERSIVE_STICKY:
// hide navigation bars - compatibility: building
// API level is lower then 19, use magic
// number directly for higher API target level
} else {
uiFlags |= View.SYSTEM_UI_FLAG_LOW_PROFILE;
}
getWindow().getDecorView().setSystemUiVisibility(uiFlags);
// getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
// @Override
// public void onSystemUiVisibilityChange(int visibility) {
// handleNavigationBar();
// }
// });
}
@Override
protected void onCreate(Bundle savedInstanceState) {
handleNavigationBar();
super.onCreate(savedInstanceState);
}
@Override
public void onResume() {
handleNavigationBar();
super.onResume();
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
handleNavigationBar();
super.onWindowFocusChanged(hasFocus);
}
}