私の質問は簡単です:Androidのビューでどのようにイベントを無効にするのですか? (視覚的にそこに存在したいが、他のすべてには存在しないように、その焦点を取り除くことを含む) それは全体のビューツリーで機能しますか? (ルート上のイベントを無効にした場合と同様に、すべてのイベントはその子に対して無効になります)。今Androidのビューでイベントを無効にするにはどうすればよいですか?
、あなたは私がすべて、次の試してみました何も言う前に:
これらの方法は真剣に機能しているようには見えません。
私はWebView
で直接試してみましたが、すべての親のレイアウトでも試しましたが、まだ対話できます。
ありがとうございます!
EDIT#1
動作しません無効にする必要がありますビューの上にビューを追加することで構成されてソリューション。実際に、それは私が簡単な例で試してみましたが、内側のビューをクリックすることは可能です:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#ff0000">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Click Me!"
/>
</LinearLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
/>
</FrameLayout>
ここでは、button
をクリックすることは可能です。
EDIT#2
私はこれをしたい理由は、私は数週間前に尋ねたfollowing questionに関連しています。
私の持っているものは、View
の下にあるナビゲーションバーとして機能し、私のアプリの内容を保持しています。この実装の問題点は、ListView
をスクロールしようとすると、そのレイヤーにフォーカス可能なビューがあるときに、ListView
はスクロールせず、代わりにフォーカスを取得するトップビューです(これは、 Webview
またはEditText
などがあります)。
回答の1で述べたようにそうです、私はsetOnTouchListener
をオーバーライドすることにより、WebView
上の任意のクリックイベントを無効にすることができますが、ビューは集束ままで、私はこれは私がまだ私のナビゲーションバーと同じ問題を抱えていた理由だと思います。
私は消滅したくありません!私はちょうどそれに任意のイベント(クリックのような)を無効にしたい... –
@AmokraneChentirはそれを透明にする... android:background = "android:color/transparent" < - もし存在すれば、 – Warpzit
ああ、私はあなたの答えを正しく読まなかった。実際には別のビューを上にしても、内部ビューでそれをクリックすることはできます。 –