Неразрешимый вид

1

Как я могу сделать представление неразрешимым. У меня два вида холста, уложенных друг на друга в макете фреймов. Оба холста занимают всю площадь экрана, и оба они прозрачны. Я хочу показать PNG на верхнем холсте и позволить пользователю нарисовать нижний холст.

Проблема заключается в том, когда пользователь прикасается к экрану, сенсорный ввод берется верхним холстом, и поскольку он ничего не делает (рисует нижний холст), ничего не происходит.

Я хочу, чтобы верхний холст действовал как оверлейный вид без взаимодействия и не назначался никаких событий, все они должны потребляться снизу. Если я устанавливаю верхний оверлей невидимым, я могу нарисовать нижний холст (так как теперь нижний холст получает все входы).

Также холст не является стандартным холстом, а обычным. Он был получен непосредственно из класса View. Но я думаю, что производное представление не вызовет проблемы. Я просто не знаю, как это сделать.

Я попытался использовать onTouch() на верхнем холсте и вызывать onTouch() нижнего холста, не работал. Я тестирую некоторые другие вещи, такие как dispatchTouch() на 2 кнопках, но мне ничего не кажется. Помощь была бы действительно оценена.

Изменение: добавлен код макета 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

Теги:
android-layout

2 ответа

1

Это может быть особый случай, не играл, чтобы убедиться, что это правда, но, как правило, в ваших событиях onTouch и т.д. Вы просто возвращаете false, если вы не обработали событие, и событие пузырится вверх по каждому виду, касаясь событий, пока что-то возвращает true, что указывает на то, что он обрабатывает хит.

если вы сделаете свой один вид (верхний уровень), просто верните false из него onTouch, нижние представления onTouch должны получить событие.

  • 0
    Не могли бы вы помочь в разработке этого, о том, как использовать это. Я имею в виду, когда я добавляю onTouchEvent () метод автогенерации eclipse, возвращающий false, но все же тогда я могу рисовать на верхнем холсте, а это не то, что мне нужно.
  • 0
    Если вы отредактируете свой первоначальный вопрос, чтобы привести пример кода и пример макета, я с радостью попробую и постараюсь помочь
Показать ещё 6 комментариев
0

попробуйте в XML добавить в корневой вид

android:focusable="false"
android:focusableInTouchMode="false"
  • 0
    Вы хотите добавить эти значения в frameLayout (который содержит эти виды холста).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню