2017-01-21 37 views
0

我有一个简单的问题与Android的意见。我有两个视图rootView和containerView,containerView包含在rootView中,但我不明白为什么当我点击containerView时,rootView被触发。Android根视图onClickListener总是触发

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    //setContentView(R.layout.activity_main); 

    LinearLayout rootView = new LinearLayout(this); 
    rootView.setBackgroundColor(Color.BLUE); 
    rootView.setGravity(Gravity.CENTER); 
    rootView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)); 
    rootView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Log.d("esx","ROOT VIEW ID: "+v.getId()); 
     } 
    }); 

    LinearLayout containerView = new LinearLayout(this); 
    containerView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,100)); 
    containerView.setBackgroundColor(Color.CYAN); 

    rootView.addView(containerView); 

    setContentView(rootView); 
}} 

我希望当我点击containerView时,没有任何反应。有没有办法做到这一点?

感谢

回答

2

尝试设置containerView.setClickable(true)

0

onClick提供了View说法。只是比较它,看看它是否是rootView。如果这不起作用,请尝试查看该是不是containerView(您需要在添加侦听器之前声明它)。