2017-01-21 90 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(您需要在添加偵聽器之前聲明它)。