通俗的說,inflate就相當於將乙個xml中定義的布局找出來.
因為在乙個activity裡如果直接用findviewbyid()的話,對應的是setconentview()的那個layout裡的元件.
因此如果你的activity裡如果用到別的layout,比如對話方塊上的layout,你還要設定對話方塊上的layout裡的元件(像imageview,文字textview)上的內容,你就必須用inflate()先將對話方塊上的layout找出來,然後再用這個layout物件去找到它上面的元件,如:
viewview=view.inflate(this,r.layout.dialog_layout,null);
textviewdialogtv=(textview)view.findviewbyid(r.id.dialog_tv);
dialogtv.settext("abcd");
如果元件r.id.dialog_tv是對話方塊上的元件,而你直接用this.findviewbyid(r.id.dialog_tv)肯定會報錯.
三種方式可以生成layoutinflater:
layoutinflaterinflater=layoutinflater.from(this);
layoutinflaterinflater=getlayoutinflater();
layoutinflaterinflater=(layoutinflater)this.getsystemservice(layout_inflater_service);
然後呼叫inflate方法將xml布局檔案轉成view
publicviewinflate(intresource,viewgrouproot,booleanattachtoroot)
在view類中,也有inflate方法
publicstaticviewinflate(contextcontext,intresource,viewgrouproot)
獲取當前View
在實際開發中layoutinflater這個類還是非常有用的,它的作用類似於findviewbyid 不同點是layoutinflater是用來找res layout 下的xml布局檔案,並且例項化 而findviewbyid 是找xml布局檔案下的具體widget控制項 如button textv...
動態獲取View的高度
設定動態復view的高度寬度有以下兩制種方法 1.getheight 方法這個方法必須要在view呼叫了onlayout方法後才能獲得,為了監聽onlayout方法,可以獲得viewtree觀察者上的 來實現,具體 為 viewtreeobserver viewtreeobserver bottom...
sql server 獲取上週幾和本週幾
sql server 獲取上週幾和本週幾 datefirst 每週以周幾開始,周一是 1 週日是 7 有些機器預設是7,有些機器預設是1 select datefirst 修改 datefirst 的值 set datefirst 7 查詢當前每週是以周幾開始,今天是一周的第幾天 select da...