国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 琼结县| 米泉市| 保山市| 长武县| 靖州| 全州县| 句容市| 宁城县| 盈江县| 宜兰市| 多伦县| 富锦市| 班戈县| 吴堡县| 汉中市| 宣武区| 双鸭山市| 手机| 北碚区| 乐清市| 宾阳县| 运城市| 绍兴市| 娄底市| 正镶白旗| 都昌县| 博湖县| 缙云县| 平南县| 西昌市| 金沙县| 宜昌市| 郑州市| 莆田市| 岳阳县| 奉贤区| 平昌县| 襄垣县| 亳州市| 云和县| 得荣县|