android 中 LayoutInflater的使用

在android開發中,我們不可能把所有的佈局和控件全部寫到一個layout.xml文件中去,即使可能,那也會讓一個xml文件變得異常臃腫,並且後期難以維護,所以我們有時候需要在需要用到相關的layout.xml文件的時候纔去實例化它,比如有很多的adapter中的佈局文件,我們就需要在adapter中進行先實例化他,然後才能使用findByID()的方式去查找相關的控件內容

LayoutInflate  的作用是將layout下的xml文件加入到內存中,而不是獲得他內部的相關控件的對象,可以這樣認爲,是 將這個佈局文件的對象拿到了

findViewByID() 的作用是拿到佈局文件中的相關控件的對象,然後對這個控件進行操作


LayoutInflate有3種實例化方式,但是有時候需要在具體地方調用具體的方式進行調用:

 setContentView(R.layout.activity_main);
        LayoutInflater layoutInflater1 = getLayoutInflater();
        LayoutInflater layoutInflater2 = LayoutInflater.from(this);
        LayoutInflater layoutInflater3 = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
    }

這三種實例化的方式都是在activity中進行的,但是如果不在activity中進行實例化呢,所以還有另外的一種方式:

this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

 inflater = LayoutInflater.from(context);

使用傳參進來的context進行實例化


發佈了92 篇原創文章 · 獲贊 11 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章