如何使视图变得难以理解。
我在框架布局中将两个画布视图彼此堆叠。
两个画布都占据整个屏幕区域,并且都是透明的。
我想在上部画布上显示一些PNG,并让用户在下部画布上绘制。
问题是当用户触摸屏幕时,触摸输入是由上部画布进行的,并且由于它什么都不做(在下部画布上绘制),因此什么也没有发生。
我希望上方的画布充当没有交互且未分配事件的覆盖视图,所有这些都应由下方的视图使用。如果将上部叠加层设置为不可见,则可以在下部画布上进行绘制(因为下部画布正在接收所有输入)。
画布也不是标准画布,而是自定义画布。它直接从View类派生。
但是我认为派生视图不会引起问题。我只是不知道该如何进行。
我尝试在上部画布上使用onTouch()并调用下部画布的onTouch(),但是没有用。
我正在测试其他一些东西,例如2 Buttons上的dispatchTouch(),但对我而言似乎并不确定。帮助将不胜感激。
编辑:添加了XML布局代码
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.samsung.sdraw.CanvasView
android:id="@+id/canvas1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="cnvs1Click"
android:text="Canvas1" />
<com.samsung.sdraw.CanvasView
android:id="@+id/canvas2"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Canvas2"
android:onClick="cnvs2Click"/>
</FrameLayout>
但我仍然认为问题可以通过View(s)解决。
画布来自S pen SDK
最佳答案
这可能是一种特殊情况,尚未播放过是否为真,但通常在您的onTouch事件等中,如果您未处理该事件,则只返回false,并且该事件在每个视图的触摸事件中冒泡,直到发生某种情况为止返回true,表示已处理匹配。
如果您使一个视图(上层)仅从onTouch返回false,则较低的视图onTouch应该会接收该事件。