2

ウィンドウはタッチ不可に設定できます。つまり、次のコードでウィンドウ全体をタッチ不可に設定するだけで、そのアクティビティの背後にあるものをクリックできます。

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

今私の質問は: RelativeLayout のみを触れないようにすることは可能ですか? ユーザーはその 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 はタッチできません。その背後にあるものだけをタッチします。

使用する場合
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 、ウィンドウ全体がボタンでもタッチできないように設定されていますが、これは私が望んでいるものではありません。

私の質問が理解できることを願っています。

編集:

私がやろうとしているのは、別のアプリケーション (Skype など) に単一のボタンを表示することだけです。そのボタンは、Skype アプリと一緒にクリックできるようにするだけです。

4

2 に答える 2

2

this に追加android:duplicateParentState="true"してみてください。RelativeLayoutこれにより、イベントがビュー ツリーに伝播されます。

それでもうまくいかない場合は、このメソッドをオーバーライドしてみてください。 http://developer.android.com/reference/android/view/ViewGroup.html#onInterceptTouchEvent(android.view.MotionEvent)

于 2013-05-31T14:01:58.993 に答える