非难以解决的观点

时间:2012-05-03 09:03:23

标签: android android-layout

如何使视图非难以处理。 我有两个画布视图在框架布局中相互堆叠。 两个画布都采用整个屏幕区域,两者都是透明的。 我想在上部画布上显示一些PNG,让用户在下部画布上绘制。

问题是当用户触摸屏幕时,触摸输入由上部画布拍摄,因为它什么都不做(在下部画布上绘图),没有任何反应。

我希望上部画布仅作为覆盖视图,没有交互,也没有分配事件,所有这些都应该被低视图使用。如果我将上部叠加设置为不可见,我可以在下部画布上绘制(因为现在较低的画布正在接收所有输入)。

此外,canvas不是标准画布,而是自定义画布。它直接来自View类。 但我认为派生的观点不会引起问题。我只是不知道如何继续。

我尝试在上部画布上使用onTouch()并调用下部画布的onTouch(),但没有奏效。 我正在测试其他一些东西,比如2个按钮上的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

2 个答案:

答案 0 :(得分:1)

这可能是一个特殊情况,没有玩过以查看这是否属实,但通常在你的onTouch事件等中你只是在你没有处理事件时返回false,并且事件在每个视图的触摸中冒泡事件直到某些东西返回true,表示它被处理了。

如果您创建一个视图(上层)只是从onTouch返回false,则onTouch的下方视图应该接收该事件。

答案 1 :(得分:0)

尝试在XML中添加到根视图

android:focusable="false"
android:focusableInTouchMode="false"