代碼中動態改變布局屬性RelativeLayout.LayoutParams.addRule()


我們知道,在 RelativeLayout 布局中有很多特殊的屬性,通常在載入布局之前,在相關的xml文件中進行靜態設置即可。

 

但是,在有些情況下,我們需要動態設置布局的屬性,在不同的條件下設置不同的布局排列方式,這時候就需要用到 RelativeLayout.LayoutParams.addRule() 方法,該方法有兩種重載方式:

 

  • addRule(int verb) :用此方法時,所設置節點的屬性不能與其它兄弟節點相關聯或者屬性值為布爾值(布爾值的屬性設置時表示該屬性為 true,不設置就默認為 false),比如:addRule(RelativeLayout.CENTER_VERTICAL)  就表示在 RelativeLayout 中的相應節點是垂直居中的。
  • addRule(int verb, int anchor) :該方法設置節點的屬性必須關聯其它的兄弟節點或者屬性為布爾值( 屬性為布爾值時,anchor 為 RelativeLayout.TRUE 表示 true,anchor 為0表示 false),比如:addRule(RelativeLayout.ALIGN_LEFT, R.id.date) 就表示 RelativeLayout 中的相應節點放置在一個 id 值為 date 的兄弟節點的左邊。
 

2. 基本流程實例:

  1. //... ...  
  2. View view = parentView.findViewById(R.id.subject);  
  3. RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)view.getLayoutParams();  
  4. params.addRule(RelativeLayout.ALIGN_RIGHT, R.id.date); //or params.addRule(RelativeLayout.CENTER_IN_PARENT);  
  5. view.setLayoutParams(params);  
  6. //... ...  

這樣的話,可以再Adapter中動態改變布局的屬性

3. 參考資料:

https://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM