【问题标题】:No click when I under the status bar我在状态栏下没有点击
【发布时间】:2018-12-19 18:19:24
【问题描述】:

我有一个全屏活动

我不希望这种情况发生。在状态栏下方时,也会出现任意视图的onClickListener。

我的 ImageView OnClickListener:

img.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        onSelectImageClick(v);

    }
});

XML:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:scaleType="centerCrop"
    android:adjustViewBounds="true"
    android:id="@+id/img"
    android:src="@drawable/empty"/>

【问题讨论】:

  • 谢谢,但这对我不起作用,因为我有一个半透明的状态栏。
  • 嗯,也许不是最好的解决方案,但是:覆盖 onTouch 而不是 onClick,并应用以下逻辑:在触摸时,节省系统时间。与触摸相比,检查是否仅过了一秒钟(或检查触摸坐标变化是否大于阈值),这将表明一个简单的点击。您也可以尝试以下解决方案进行点击检测,虽然我不知道它是否适用于您的情况:stackoverflow.com/questions/19538747/….
  • 正在工作。通过按下并释放单击来捕获坐标。然后我比较它们。感谢您的帮助。

标签: java android xml android-studio


【解决方案1】:

我找到了解决办法:

img.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if(event.getAction() == MotionEvent.ACTION_DOWN) {

                x = event.getX();
                y = event.getY();

            } else if (event.getAction() == MotionEvent.ACTION_UP) {

                x2 = event.getX();
                y2 = event.getY();

                if(x==x2 && y==y2){



                }else{



                }

            }

            return false;
        }
    });

谢谢,安海特·阿南农

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多