Android setOnClickListener仅指向包含许多其他视图的相对布局的一个视图

Android setOnClickListener仅指向包含许多其他视图的相对布局的一个视图,android,android-layout,Android,Android Layout,我有一个由几个自定义视图组成的相对布局,当我单击其中一个视图(如“NavigationSelector”)时,另一个视图(如“AssistanceSelector”)必须修改。我已经为NavigationSelector的对象添加了setOnClickListener事件,但是我注意到,只要我在整个相对布局上单击,就会调用NavigationClickListener <RelativeLayout android:orientation="vertical" an

我有一个由几个自定义视图组成的相对布局,当我单击其中一个视图(如“NavigationSelector”)时,另一个视图(如“AssistanceSelector”)必须修改。我已经为NavigationSelector的对象添加了setOnClickListener事件,但是我注意到,只要我在整个相对布局上单击,就会调用NavigationClickListener

    <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;
        ...
        }

Activity.java:
导航选择器objNavigationSelector=null;
objNavigationSelector=(NavigationSelector)findViewById(R.id.NavigationSelector);
objNavigationSelector.setOnClickListener(新导航ClickListener(this));
类NavigationClickListener实现OnClickListener
公共void onClick(视图v){
开关(v.getId()){
case R.id.navigationSelector://做必要的事情
打破
...
}

向不希望单击的布局项目添加标签
android:clickable=“false”


希望有帮助!

我认为这是因为您的两个视图共享同一位置。修复您的布局参数,两者都有
android:layout\u alignParentLeft=“true”

我担心它不起作用。我设置了android:clickable=“false”指向相对布局中的所有其他项,但仍无法识别单击。否,在自定义视图中,我已将一个对象放置在otherNavigationSelector cutomview上方:int canvasHeight=canvas.getHeight();int centreX=10;int NaviSelector Height=NaviSelector.getHeight();int NaviSelector Center=(canvasHeight-NaviSelectorHeight)/2-40;canvas.drawBitmap(NaviSelector,centreX,NaviSelectorCenter,SelectorPaint);AssistanceSelector cutomview:int-centreX=10;int-AssistSelectorHeight=AssistSelector.getHeight();int-AssistSelectorCenter=(canvasHeight-AssistSelectorHeight)/2;canvas.drawBitmap(辅助选择器、centreX、辅助选择器或中心、选择器或绘制);