2012-01-02 11 views
0

私はいくつかのカスタムビューからなる相対レイアウトを持っています。ビューの1つをクリックすると "NavigationSelector"と言う別のビュー "AssistanceSelector"を修正する必要があります。 NavigationSelectorのオブジェクトに対してsetOnClickListenerイベントを追加しましたが、NavigationClickListenerが呼び出された相対レイアウト全体をクリックするとどこでもそれが観測されています。setOnClickListenerは他の多くのビューを含む相対レイアウトの1つのビューのみにします

<RelativeLayout 
    android:orientation="vertical" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    > 

    <com.dashboard.customviews.NavigationSelector 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:id="@+id/navigationSelector"> 
    </com.dashboard.customviews.NavigationSelector> 

    <com.dashboard.customviews.AssistanceSelector 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:id="@+id/assistanceSelector"> 
    </com.dashboard.customviews.AssistanceSelector> 

Activity.java: 

    NavigationSelector objNavigationSelector=null; 
    objNavigationSelector=(NavigationSelector)findViewById(R.id.navigationSelector); 
    objNavigationSelector.setOnClickListener(new NavigationClickListener(this)); 

class NavigationClickListener implements OnClickListener 

public void onClick(View v) { 

     switch (v.getId()) { 
     case R.id.navigationSelector: //do required stuff 
      break; 
     ... 
     } 

答えて

0

クリックしたくないレイアウト項目にタグandroid:clickable="false"を追加します。

希望すると助かります!

+0

恐らくうまくいきません。私はandroid:clickable = "false"を相対レイアウト内の他のすべての項目に設定しましたが、それでもクリックは再認識されています。 – rosemary

0

あなたの2つのビューが同じ位置を共有しているからです。あなたのレイアウトパラメータを両方とも修正してください。android:layout_alignParentLeft="true"

+0

カスタムビューではなく、もう一方のオブジェクトを上に配置しました – rosemary

+0

NavigationSelector cutomview: int canvasHeight = canvas.getHeight(); int centreX = 10; int NaviSelectorHeight = NaviSelector.getHeight(); int NaviSelectorcentreY =(canvasHeight - NaviSelectorHeight)/ 2-40; canvas.drawBitmap(NaviSelector、CentreX、NaviSelectorcentreY、SelectorPaint); AssistanceSelector cutomview: int centreX = 10; int AssistSelectorHeight = AssistSelector.getHeight(); int AssistSelectorcentreY =(canvasHeight - AssistSelectorHeight)/ 2; canvas.drawBitmap(AssistSelector、centreX、AssistSelectorcentreY、SelectorPaint); – rosemary

関連する問題