A009-layout資源

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

layout資源
layout資源

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

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

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

獲取LayoutInflater實例有三種形式:

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實例對象之后,調(diào)用其inflate方法來動態(tài)加載布局。
我們用得比較多的是以下兩個方法

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文件動態(tài)加載出來。

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

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

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

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容