LayoutInflater中四种类型inflate方法的介绍
第一種:
public View inflate (int resource, ViewGroup root)
resource?:?View?的?layout?的?ID
root?:如果返回?null?,則將此?View?作為根?,?此時既可以應用此?View?中的其他控件了。
??????如果返回?!null,?則將默認的?layout?作為?View?的根。
?
第二種?:
public View inflate (XmlPullParser parser, ViewGroup root)
parser:?你需要解析?xml?的解析接口
root?:如果返回?null?,則將此?View?作為根?,?此時既可以應用此?View?中的其他控件了。
??????如果返回?!null,?則將默認的?layout?作為?View?的根。
?
第三種:
public View inflate (XmlPullParser parser, ViewGroup root, boolean attachToRoot)
parser:?你需要解析?View?的?xml?的解析接口
root?:如果返回?null?,則將此?View?作為根?,?此時既可以應用此?View?中的其他控件了。
???????如果返回?!null,?則將默認的?layout?作為?View?的根。
attachToRoot?:
??? ture?: 也就將此解析的?xml?作為?View?根
??? false?:則為默認的?xml?,做為根視圖?View
?
第四種:
public View inflate (int resource, ViewGroup root, boolean attachToRoot)
resource?:?View?的?layout?的?ID
root?:如果返回?null?,則將此?View?作為根?,?此時既可以應用此?View?中的其他控件了。
???????如果返回?!null,?則將默認的?layout?作為?View?的根。
attachToRoot?:
??? ture?:也就將此解析的?xml?作為?View?根
??? false?:則為默認的?xml?,做為根視圖?View
?
同時在此講講讓我去?API?中去理解這四個函數的原因吧!
在?Activity?中:
大家是否知道?,?在?setContentView(new MySurfaceView(this))?后,此?Activity?中聲明的?View?控件,?如:?TextView?為什么引用不到?layout布局文件中的控件?ID?呢?初一看能夠應用到,但是為什么編譯就報空指針呢?
原因:在?setContentView(new MySurfaceView(this))?后,此時的?View?變為了根視圖了,雖然能應用到?TextView?對應的?ID,?但是我在MySurfaceView?中根本就沒有這個對象,所以就報空指針!
解決辦法:
View view = LayoutInflater.from(this).inflate(R.layout.passover, null);?注:每解析一次都會產生不同的對象,?然后你再引用沒問題,使用自如了.
轉載于:https://www.cnblogs.com/top5/archive/2012/05/05/2484938.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的LayoutInflater中四种类型inflate方法的介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDOJ2795 Billboard【线
- 下一篇: window 注册表五大类