常用但忽略的android知識1-Inflate

轉載自 http://blog.csdn.net/andypan1314/article/details/6718298

Inflate()作用就是將xml定義的一個佈局找出來,但僅僅是找出來而且隱藏的,沒有找到的同時並顯示功能。最近做的一個項目就是這一點讓我迷茫了好幾天。

android上還有一個與Inflate()類似功能的方法叫findViewById(),二者有時均可使用,但也有區別

區別在於:

如果你的Activity裏用到別的layout,比如對話框layout,你還要設置這個layout上的其他組件的內容,你就必須用inflate()方法先將對話框的layout找出來,然後再用findViewById()找到它上面的其它組件。例如:

    View view1=View.inflate(this,R.layout.dialog_layout,null);  
        
      TextViewdialogTV=(TextView)view1.findViewById(R.id.dialog_tv);  
        
      dialogTV.setText("abcd");  

注:R.id.dialog_tv是在對話框layout上的組件,而這時若直接用this.findViewById(R.id.dialog_tv)肯定會報錯。

View viewStub = ((ViewStub) findViewById(R.id.stubView)).inflate(); 

Inflate()或可理解爲“隱膨脹”,隱性擺放在view裏,inflate()前只是獲得控件,但沒有大小沒有在View裏佔據空間,inflate()後有一定大小,只是出於隱藏狀態
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章