国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 临邑县| 武穴市| 廉江市| 安吉县| 巧家县| 义乌市| 左贡县| 大庆市| 平武县| 墨玉县| 兴化市| 西峡县| 五河县| 宁蒗| 陇南市| 大余县| 武平县| 平定县| 深州市| 镇远县| 修水县| 花莲县| 安顺市| 襄汾县| 江安县| 太湖县| 枝江市| 衡水市| 图们市| 嵩明县| 普安县| 石首市| 朔州市| 犍为县| 伊吾县| 营口市| 六枝特区| 通化市| 南平市| 洪湖市| 陆良县|