ViewGroup和LayoutParams之間的關系


大家可以回憶一下,當在LinearLayout中寫childView的時候,可以寫layout_gravity,layout_weight屬性;在RelativeLayout中的childView有layout_centerInParent屬性,卻沒有layout_gravity,layout_weight,這是為什么呢?這是因為每個ViewGroup需要指定一個LayoutParams,用於確定支持childView支持哪些屬性,比如LinearLayout指定LinearLayout.LayoutParams等。如果大家去看LinearLayout的源碼,會發現其內部定義了LinearLayout.LayoutParams,在此類中,你可以發現weight和gravity的身影。

 

如果在自定義的Viewgroup中 自定義了內部類LayoutParams 則必須重寫該方法

@Override
     public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attrs)
     {
       //返回自定義的LayoutParams
         return new MarginLayoutParams(getContext(), attrs);
     }
 
y以上內容轉載自  (自定義ViewGroup學習):http://www.2cto.com/kf/201408/322460.html


免責聲明!

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



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