2013-05-31 2 views
1

Окно может быть установлено не осязаемы, что означает, что вы можете нажать что-нибудь за этой деятельностью, просто установив все окна, чтобы не осязаемый со следующим кодом:Возможно ли сделать вид невидимым, как окно в андроиде?

getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 

Теперь мой вопрос: возможно ли чтобы сделать только RelativeLayout NOT TOUCHABLE, я имею в виду, что пользователь может коснуться чего-либо позади этого RelativeLayout, но он не сможет коснуться ничего за кнопкой в ​​этом RelativeLayout.

Это мой XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/rl" 
    style="@android:color/transparent" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="44dp" 
     android:text="Button" /> 


</RelativeLayout> 

мне нужно RelativeLayout быть НЕ осязаемыми, пользователь может коснуться чего-либо позади него. Мне нужна только кнопка в relativelayout, чтобы быть осязаемой

Следовательно, кнопка touchable, RelativeLayout Not Touchable. Я могу прикоснуться к кнопке, но я не могу прикоснуться к RelativeLayout. Я касаюсь всего этого.

При использовании
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); Всего окно создается не осязаем с помощью кнопки, а также, что не то, что я хочу.

Надеюсь, мой вопрос понятен.

EDIT:

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

+0

это именно то же самое, что я ищу :) вы получите любое решение, если да, отправьте его –

ответ

1

Попробуйте добавить android:duplicateParentState="true" в ваш RelativeLayout, это будет распространять события по дереву.

Если это не сработает, попробуйте переопределить этот метод. http://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent(android.view.MotionEvent)

+0

. Такая же проблема не сработала :( – ARMAGEDDON

0

В вашем Java кода записи, как этот

ArrayList<View> touchables; 
RelativeLayout RelativeLayout_ = (RelativeLayout) findViewById(R.id. rl); 
touchables = RelativeLayout_.getTouchables(); 
for (View touchable : touchables) 
    { 
     if (!(touchable.getId()==R.id.button1)) 
     { 
      touchable.setEnabled(false); 
     } 
    } 

Надежда будет работать

+1

это не сработало. Я не ab le, чтобы передать события касания через просмотр rl – ARMAGEDDON

+0

Я не получил вас! Использовал ли вы этот относительный макет только или использовал какой-то другой макет в этом xml – Amsheer

+0

Объявите сначала arraylist ..... ArrayList touchables; как это .. – Amsheer

Смежные вопросы