【问题标题】:Android setOnClickListener is not called when navigation bar is hidden隐藏导航栏时不调用Android setOnClickListener
【发布时间】:2014-08-17 08:37:28
【问题描述】:

我已经搜索了很长时间,但没有找到答案。

我有一个带有 RelativeLayout 的全屏活动,用于显示某些选项。当我创建我的活动时,我隐藏了我的选项栏和导航栏,并在我的活动上设置了一个 setOnClickListener。

单击活动时,如果选项栏被隐藏,我想显示选项栏,或者再次隐藏选项栏和导航栏。

        contentView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (ACTION_BAR_HIDDEN) {
                actionBar.setVisibility(View.VISIBLE);
                ACTION_BAR_HIDDEN = false;
            } else {
                actionBar.setVisibility(View.GONE);
                ACTION_BAR_HIDDEN = true;
                int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
                contentView.setSystemUiVisibility(uiOptions);
            }
        }
    });

一切正常,除了当我第一次点击活动时隐藏导航栏时,它会显示导航栏,只有在第二次点击时才会调用我的 setOnClickListener。

隐藏导航栏是否可以拦截点击?

我可以发布更多代码,但我认为我的问题已经足够清楚了。

非常感谢。

【问题讨论】:

    标签: android


    【解决方案1】:

    其实问题出在你的逻辑上..

    请试试这个

    contentView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (ACTION_BAR_HIDDEN) {
                    //COde for showing action bar
                    //Code for showing navigation bar
                    ACTION_BAR_HIDDEN = false;
                } 
                else {
                    //COde for hiding action bar
                    //Code for hiding navigation bar
                    ACTION_BAR_HIDDEN = true;
                }
            }
        });
    

    【讨论】:

    • 您好,感谢您的回答,但是,如果导航栏被隐藏,我的 onClick 方法不会被调用。也许我是盲人,但我也没有看到我的代码和你的代码之间的差异?
    猜你喜欢
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 2012-09-30
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多