2010-03-14 78 views
0

以下xml版本正確處理高度和寬度,java不會丟失什麼java?xml vs java LinearLayout填充

XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="fill_parent" android:layout_width="fill_parent" 
    android:orientation="horizontal"> 
    <include android:id="@+id/cell1" layout="@layout/grid_text_view" /> 
    <include android:id="@+id/cell2" layout="@layout/grid_text_view" /> 
</LinearLayout> 

的Java

LinearLayout ll = new LinearLayout(this); 
ll.setOrientation(LinearLayout.HORIZONTAL); 
ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
ll.addView((TextView)this.getLayoutInflater().inflate(R.layout.grid_text_view, null)); 
ll.addView((TextView)this.getLayoutInflater().inflate(R.layout.grid_text_view, null)); 
setContentView(ll); 

grid_text_view

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="fill_parent" 
    android:layout_width="0dip" 
    android:text="1" 
    android:textSize="20sp" 
    android:gravity="center" 
    android:layout_weight="1" /> 

我已經嘗試了ll.invalidate(),它也不能工作? :(

截圖在http://www.flickr.com/photos/[email protected]/sets/72157623618407586/

+0

使用'hierarchyviewer'來檢查您的活動並查看您所期望的未應用的設置。 – CommonsWare 2010-03-14 17:46:18

回答

2

你傳入null作爲充氣()方法的第二個參數。這將防止佈局充氣從產生適當的LayoutParams用於充氣視圖,而是通過空,通如果你調用inflate(R.layout.mytextview,ll,true),你甚至不需要調用addView(),最後一個參數是true,意思是「將膨脹視圖附加到父對象。「