2017-08-15 92 views
0

我在GridLayout裏面有一些TextView。 GridLayout在運行時動態膨脹,然後添加到主佈局。我的boxitem(GridLayout)的寬度正確縮放,但高度似乎總是包裹內容。我希望高度與父母匹配。動態添加GridLayout的Match_parent

main.axml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/CenterLayout" 
    android:background="#ffffff"/> 

border.xml:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 
    <stroke 
     android:width="2dp" 
     android:color="#000000" /> 
</shape> 

BoxItem.axml:

<?xml version="1.0" encoding="utf-8"?> 
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:rowCount="1" 
    android:columnCount="2" 
    android:background="@drawable/border" 
    android:padding="10px"> 
    <TextView 
     android:text="test: " 
     android:id="@+id/TextView1" 
     android:textColor="#009900" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="16sp" /> 
    <TextView 
     android:text="testy Mctestface" 
     android:id="@+id/Shelf" 
     android:textColor="#009900" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="16sp" /> 
</GridLayout> 

這裏是我在創建

protected override void OnCreate(Bundle bundle) 
{ 
    base.OnCreate(bundle); 
    SetContentView(Resource.Layout.Main); 
    var view = LayoutInflater.Inflate(Resource.Layout.BoxItem, null); 
    FindViewById<LinearLayout>(Resource.Id.CenterLayout).AddView(view); 
} 
+1

你試過'LayoutInflater.Inflate(Resource.Layout.BoxItem,content_view,false)'而不是'LayoutInflater.Inflate(Resource.Layout.BoxItem,null)'?我不知道Xamarin,但在Java中可以這樣做。 –

回答

0

您可以簡單地添加一個LayoutParameters規則,你BoxItem.axml視圖時發現,例如:

var view = LayoutInflater.Inflate(Resource.Layout.BoxItem, null); 
view.LayoutParameters = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent); 
FindViewById<LinearLayout>(Resource.Id.CenterLayout).AddView(view); 

這將解決佈局參數的問題時動態添加的看法。