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

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

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

2019-11-09 14:51:09
字體:
供稿:網(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時 跟布局屬性才被設(shè)置進去,

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

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 洮南市| 方正县| 喀喇沁旗| 油尖旺区| 科技| 嘉义市| 万宁市| 新野县| 饶河县| 福贡县| 巴里| 桦南县| 云梦县| 荣昌县| 阜阳市| 电白县| 太湖县| 抚顺县| 肥乡县| 贡山| 大悟县| 镇康县| 隆安县| 嘉善县| 通州区| 叙永县| 阿勒泰市| 沅江市| 郸城县| 迭部县| 方山县| 屏南县| 醴陵市| 三江| 德格县| 陆丰市| 二连浩特市| 深圳市| 海晏县| 云林县| 若羌县|