不传播点击次数

时间:2014-07-10 05:33:36

标签: java android

当我点击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?

1 个答案:

答案 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);