国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

xml解析成view對象需要注意的事

2019-11-09 13:59:40
字體:
供稿:網(wǎng)友

        很多時候我們需要把一個xml布局文件轉(zhuǎn)成view對象,通過以下代碼實現(xiàn):

    inflater.inflate(int resource, ViewGroup root, boolean attachToRoot);

其中inflater對象可以通過以下幾種方式獲取:

LayoutInflater inflater=LayoutInflater.from(Context context);LayoutInflater inflater=getLayoutInflater();LayoutInflater inflater=(LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);

inflate方法有幾個重載 比如我們可以寫成 inflater.inflate(int resource, null);當我們傳入null時,跟布局layout_xxx屬性無效,比如我要實現(xiàn)圖下這種效果,通過添加item間的分隔來測試

                                       

  我們在item的xml中代碼為

                      

看跟布局FramLayout中的 layout_margin="5dp" ,item間的分隔符是通過這個實現(xiàn)的,但是當我們解析xml文件的代碼寫成inflater.inflate(int resource, null);發(fā)現(xiàn)沒有分隔效果,如下圖

                                       

但是把layout_margin="5dp" 屬性寫在TextView中就有效果了,

通過查閱源碼發(fā)現(xiàn),當root也就是ViewGroup parent 這個參數(shù)不為空并且attachToRoot為false時 跟布局屬性才被設置進去,

當然你可以選擇把layout相關(guān)屬性寫在對應的子view中,但是如果子view太多就不便于代碼的書寫,這時候在跟布局中就比較好控制,

其實還有一種加載xml為view對象的寫法 View.inflate(Context context,int resource, ViewGroup root),原理都是一樣的,這種我們第三個參數(shù)一般為null,否則會報一個異常,這種跟上面差不多,當ViewGroup為null時,resource中的跟布局layout屬性就無效了,所以還是推薦上面的加載xml布局的寫法


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 措美县| 桐梓县| 响水县| 白朗县| 大城县| 晋中市| 芜湖县| 云浮市| 菏泽市| 沙坪坝区| 凌源市| 阳谷县| 丰城市| 化州市| 合肥市| 肥东县| 瑞安市| 肇东市| 萝北县| 汉中市| 奉贤区| 延长县| 桂阳县| 顺平县| 西平县| 平武县| 龙陵县| 屯留县| 泗洪县| 常山县| 吉水县| 东平县| 嘉祥县| 依安县| 洛浦县| 常德市| 军事| 临颍县| 平泉县| 宁波市| 延吉市|