如何禁用BackGroundLayout的TouchEvent?

时间:2016-09-22 12:46:28

标签: java android android-layout ontouchevent

禁用 BackGroundLayout TouchEventClick

在我的应用程序中,我遇到了touchevent的问题。在这里我有两个形象要描述。

我创建了一个仅用于教学目的的布局,因此用户可以完善它。 布局 [image1]具有透明主题和一个按钮[获取]。

正如本教程所说(触摸任何绘制位置),用户按照本教程触摸绘制线条的任何位置,但它也会绘制该线条 在背景布局上也看到 [image2]。它在touchevent上绘制线条

我无法理解为什么它允许触摸实际处于背景中的一个视图。

简而言之,当用户遵循本教程时,它不允许在主布局上触摸和绘制线条。

我不反对禁用背景视图的touchevent。

我也在检查我的布局的所有子布局,但我仍然可以点击并触摸背景布局的事件。 我也对此活动有同样的问题Image 3

我把这段代码放在侧面布局的触摸事件

    @Override
        public boolean onTouchEvent(MotionEvent event) {
            return false;
        }
  @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            // Make the checkbox not respond to any user event
            return false;
        }

        @Override
        public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) {
            // Make the checkbox not respond to any user event
            return false;
        }

        @Override
        public boolean onKeyPreIme(int keyCode, KeyEvent event) {
            // Make the checkbox not respond to any user event
            return false;
        }

        @Override
        public boolean onKeyShortcut(int keyCode, KeyEvent event) {
            // Make the checkbox not respond to any user event
            return false;
        }

        @Override
        public boolean onKeyUp(int keyCode, KeyEvent event) {
            // Make the checkbox not respond to any user event
            return false;
        }

        @Override
        public boolean onTrackballEvent(MotionEvent event) {
            // Make the checkbox not respond to any user event
            return false;
        }

这个背景布局代码。

@Override
public void setEnabled(boolean enabled) {
    super.setEnabled(enabled);

    for (int i = 0; i <  getChildCount(); i++) {
        View child =  getChildAt(i);
        child.setEnabled(enabled);
    }
}

0 个答案:

没有答案