当我点击Android按钮时,会显示Android(之前隐藏)的软件密钥,而不是为我点击的实际按钮触发onClick()方法。
我有两种显示或隐藏系统UI的方法:
1
// Set up the user interaction to manually show or hide the system UI.
contentView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (TOGGLE_ON_CLICK) {
mSystemUiHider.toggle();
} else {
mSystemUiHider.show();
}
}
});
和2:
/**
* Touch listener to use for in-layout UI controls to delay hiding the
* system UI. This is to prevent the jarring behavior of controls going away
* while interacting with activity UI.
*/
View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (AUTO_HIDE) {
delayedHide(AUTO_HIDE_DELAY_MILLIS);
}
return false;
}
};
我还有另一种方法可以切换到按钮上的onClick()事件
public void onClick(View v) { switch() { } }
是否可以修复此行为,当我点击实际按钮时会被触发并显示系统UI?
答案 0 :(得分:1)
在同一视图中同时具有触摸侦听器和单击侦听器之前,没有解决此问题的解决方法。尝试使用
View.SYSTEM_UI_FLAG_LOW_PROFILE|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
代替。在setcontentview()
方法之前添加以下代码。
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptions);