A009-layout資源

本節(jié)課繼續(xù)講Android中的資源文件-layout資源,一個(gè)界面的誕生離不開布局,我們Android開發(fā)者的大部分工作都是在搭建UI,一個(gè)產(chǎn)品的誕生,首先是由產(chǎn)品經(jīng)理出線框圖,再由設(shè)計(jì)師出視覺稿和標(biāo)注圖,然后我們開發(fā)人員才會(huì)根據(jù)標(biāo)注圖來搭建界面。本節(jié)課就來給大家簡單介紹一下我們要用到的布局資源,先來看AS中布局資源長什么樣子,如下圖所示:

layout資源
layout資源

圖中的layout文件夾存放的就是我們程序中的布局文件,我們每搭一個(gè)界面都需要在layout文件夾下創(chuàng)建相應(yīng)的xml文件,然后在程序中通過以下方式引用:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

我們在Activity中通過setContentView的方法,把我們的界面顯示出來。
除了這種方式,我們實(shí)際開發(fā)中可能需要?jiǎng)討B(tài)的加載布局文件,需要通過LayoutInflater這個(gè)類來找到相應(yīng)的布局文件,它就類似Activity中的findViewById的作用,只不過findViewById查找的是當(dāng)前頁面的控件,而LayoutInflater是加載布局文件中的布局文件。

獲取LayoutInflater實(shí)例有三種形式:

1. LayoutInflater inflater = getLayoutInflater();//調(diào)用Activity的getLayoutInflater() 
2. LayoutInflater inflater = LayoutInflater.from(context);  
3. LayoutInflater inflater =  (LayoutInflater)context.getSystemService                           (Context.LAYOUT_INFLATER_SERVICE);

獲取到LayoutInflater實(shí)例對象之后,調(diào)用其inflate方法來動(dòng)態(tài)加載布局。
我們用得比較多的是以下兩個(gè)方法

public View inflate (int resource, ViewGroup root) 
public View inflate (int resource, ViewGroup root, boolean attachToRoot)

eg:


        LayoutInflater inflater = LayoutInflater.from(this);

        LinearLayout view = (LinearLayout) inflater.inflate(R.layout.layout_inflate, null);

通過以上這種方式就可以把layout下的xml文件動(dòng)態(tài)加載出來。

這里留一個(gè)思考題給大家思考一下,上面inflate的兩種加載方法,之間的區(qū)別是什么?
這個(gè)問題剛開始接觸可能不能理解它們之間的區(qū)別,只有應(yīng)用在特定的場景才會(huì)意識到它們的區(qū)別,比如我們使用ListView的時(shí)候,需要加載item布局,使用上面兩種重載方式,并設(shè)置不同的參數(shù)都會(huì)有不同的效果

inflater.inflate(R.layout.list_item, null);

inflater.inflate(R.layout.list_item, parent, false);

inflater.inflate(R.layout.list_item, parent, true);

這個(gè)疑問我們先放著,等我們講到ListView的時(shí)候再來講這個(gè)問題,童鞋可以先想一想,自己百度一下,看是否能找到答案。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容