2013-01-09 47 views
0

我已經在XML文件中聲明瞭一個視圖,並且我想通過代碼來定義它,但是當我創建它時什麼也不顯示。你可以幫我嗎?設置先前在XML文件中確定的視圖

這是我的XML文件:

[...]

<View 
     android:id="@+id/marco_container" 
     style="@style/wrapFull" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

[...]

而且我通過這種方式進行定義:

setContentView(R.layout.marco); 
View view = (View) findViewById(R.id.marco_container); 
view.inflate(getApplicationContext(), R.layout.prueba, null); 

我試圖通過這種方式宣佈它:

view = View.inflate(getApplicationContext(), R.layout.prueba, null); 

這是prueba.xml

+0

,請複製粘貼R.layout.prueba的內容 – Egor

+0

可能重複[這個問題] (http://stackoverflow.com/questions/14221205/define-a-view-of-a-xml-by-code) – SSS

+0

它不重複,我使用了線性佈局,但有不同的問題。 – jramirez

回答

1

這不是查看視圖。這是您的自定義View,只需創建一個擴展FrameLayout的自定義視圖,並在構造函數內部展開視圖。

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER...); 
View view = inflater.inflate(getApplicationContext(), R.layout.prueba, this); 

和你的主XML裏面放:

<com.my.path.CustomView 
    android:id="@+id/marco_container" 
    style="@style/wrapFull" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

而在你的類:

setContentView(R.layout.marco); 
CustomView view = (CustomView) findViewById(R.id.marco_container); 
0

你需要做的是這樣:

View view2 = view.inflate(this, R.layout.prueba, null); 
((ViewGroup)view).addView(view2); 

當然view必須是某種ViewGroupRelativeLayoutLinearLayout等)

0
setContentView(R.layout.marco); 
LinearLayout li = (LinearLayout) findViewById(R.id.marco_container); 
View view = getLayoutInflater().inflate(R.layout.prueba, li, false); 
li.addView(view); 
相關問題