Android 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()后有一定大小,只是處于隱藏狀態。
以上就是對Android Inflate() 方法的 簡單說明應用,希望能幫到需要幫助的同學。
新聞熱點
疑難解答