第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

解釋LayoutInflater的inflate方法.

標(biāo)簽:
Android

第一次接触inflate方法是在使用ListView的getView()时. 当时只知道这么写, 并不知道为什么.

LayoutInflate.from(getContext()).inflate(ID, parent, false);

想写一下为什么这么写的原因, 希望能帮到Android道路上的新手(如果有iOS和Android的问题, 欢迎加好友一起讨论).

这个inflate方法有四个重载, 分别是:

// A
public View inflate(@LayoutRes int resource, @Nullable ViewGroup root)

// B
public View inflate(XmlPullParser parser, @Nullable ViewGroup root)

// C
public View inflate(@LayoutRes int resource, @Nullable ViewGroup root, boolean attachToRoot)

// D
public View inflate(XmlPullParser parser, @Nullable ViewGroup root, boolean attachToRoot)

首先先说说形参的意义.

  • resource : 它是要解析的XML文件的ID号(必填)
  • root : 也就是ListView本身
    • 如果传入不为空, attachToRoot也为true, 就把XML解析后的view加入root子控件, 然后返回这个root.
    • 否则, 就返回一个解析之后的XML生成的view.
  • attachToRoot : 决定是否让root成为返回值的父控件
  • parser : XML的解析器

这四个方法的关系如下, 这样就很清晰了, 最终都会去调用D方法. 由D方法负责去解析XML

  • 调用A之后, A内部调用C, 并将attachToRoot设置为true, C内部调用D.
  • 调用
    B之后, B内部调用D, 并将attachToRoot设置为true
  • 调用C之后, C内部调用D

为什么要像下面这么写来返回View?

LayoutInflate.from(getContext()).inflate(ID, parent, false);
  • 省略attachToRoot, 其他不变行不行? 不行. 因为这在执行时会默认传入true. 由上面的解释可以知道, 这样会返回那个root, 也就是返回了整个ListView, 这个ListView再被当做getView()方法返回传入ListView, 会直接报错.
  • 将attachToRoot传入true, 其他不变行不行? 不行. 上面的后半段解释过了
  • 将root传入null, 其他不变行不行? 分情况:
    • ListView的cell的布局文件中的UI控件的Layout_XX全部依赖最外层控件, 那就有影响了, 此时最外层的Layout_XX属性失效, 使用ListView的默认属性.
    • ListView的cell的布局文件中的UI控件的Layout_XX是固定的, 也就是常量值, 那就不受影响, 可以正常工作.
點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消