2012-10-26 81 views
2

我想創建一個應用程序,我可以隨着時間的推移添加布局。例如。該應用程序附帶一套已知的佈局,但可以下載新的主題包而無需分發新的apk。我不希望這些存儲在佈局目錄中 - 只要我有加載它們的方法,它們可以存儲在應用程序可以訪問的任何位置。有沒有辦法在運行時將佈局添加到Android應用程序?

它看起來像佈局需要編譯成二進制形式,如果我要使用它們與LayoutInflator。那麼有沒有辦法在分發之前編譯它們?我真的寧願不必爲這些寫一個解釋器,因爲我確信它會比較慢。

+0

您可以通過編程方式創建這些佈局。 – petey

+1

XML佈局文件在編譯時被預處理以提供優化。換句話說,一個非常複雜的XML佈局(如果不在編譯時進行預處理的話)可能需要很長時間才能導致延遲和UX的問題。簡而言之,不能以你想要的方式膨脹XML文件。我讀過的文檔在解釋這個時使用了「當前」這個詞,這表明未來版本的Android *可能允許這樣做,但顯然這不是保證。 – Squonk

+0

@forgivegod我知道我可以通過編程創建它們 - 這是我對自佈局以來必須編寫解釋器的評論。 – Ben

回答

0

這個佈局文件通過LayoutInflater在另一個佈局中。

假設您想在主佈局中添加此佈局。因此,通過mainlayout.add(view)在主佈局和主佈局中的這個列表佈局中進行線性佈局,這裏的視圖是LayoutInflater viw。

實施例:

private View view; 
    view = getLayoutInflater().inflate(R.layout.image_sub_layout,null); 
    topicLinearLayout.addView(view); // main Layout Linear layout 

感謝。

相關問題