2011-03-03 43 views
1

我正在使用兩種不同的方式將規則添加到LayoutParams變量中的一些代碼。在一些代碼,它是這樣完成的:按位OR發送多個標誌到LayoutParams.addRule()是否有意義?

params.addRule(RelativeLayout.ALIGN_PARENT_TOP | RelativeLayout.ALIGN_PARENT_LEFT); 

,並在另一部分是做這樣的:

params.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 

在第二部分評論說:

// We MUST do these rules separately if we don't 
// want to use logic-split for landscape/portrait modes. 

它是有區別的,還是這個評論是迷信的產物?哪種方式是首選,爲什麼?

回答

2

不,您不能使用OR來添加多個規則。每個規則都必須單獨添加。

+0

謝謝!考慮到你是誰我很想接受這個答案馬上,但我喜歡讓更多的時間讓其他答案滴入。 – 2011-03-03 18:31:34

+0

我可以說服你的源頭。 addRule()的實現只做mRules [verb] = TRUE,而mRules是一個數組長度的規則數。 OR'ing動詞可能會設置錯誤的規則或失敗,索引越界異常:) – 2011-03-04 00:59:20

相關問題