2012-04-12 6 views
17

以下のUIでこれを下にドラッグして画面全体をオーバーレイします。 LinearLayoutは透過的で、その下のコントロールをクリック可能またはタッチ可能にすることができます。基本的には、このLinearLayoutの下のリストをスクロールし、コントロールをクリックすることができます。どうすればそれを無効にできますか?android - overdrawレイアウトでLinearLayoutをタッチできるようにする

添付の例を参照してください。

enter image description hereあなたは

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/rlExtNavbar" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="fill_vertical" 
    android:layout_gravity="fill_vertical" 
    android:background="@color/transparent" xmlns:tools="http://schemas.android.com/tools" tools:ignore="Overdraw"> 
    <RelativeLayout 
     android:id="@+id/expandedNavbarLayout" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" > 
    </RelativeLayout> 
    <LinearLayout 
     android:id="@+id/transparentLayout" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/expandedNavbarLayout" 
     android:focusableInTouchMode="false" 
     android:focusable="false" 
     android:background="@color/fulltransparent"> 
    </LinearLayout> 

</RelativeLayout> 

答えて

2

リニアレイアウトにクリックを割り当て感謝し、それはそれを解決しました。正直なところ、このように動作してはならないはずですが、それが問題を解決しました。クリックは空です。

107

XMLでLinearLayoutのandroid:clickable="true"プロパティを設定するだけで、クリックスルーが防止されます。クリックリスナーは必要ありません。

+9

この回答は受け入れられる必要があります。 –

+0

これは、クリック可能な状態が、クリック可能なtrueに設定されたビューのすべての子コントロールに伝播するという唯一の問題です。例えばボタンは背景をクリックするとアニメーションをクリックします。 –

+1

は不運にも、私にとってはうまくいかなかった。 – NarendraJi

0

私にとっては、内部のRelativeLayoutの前にLinearLayoutを配置することが効果的でした。

関連する問題