我在XML中有以下结构。
<LinearLayout android:id="@+id/tagsTable"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_margin="10dip" android:orientation="vertical">
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:background="@drawable/btn_white_add_9"
android:text="Tag" android:layout_margin="2px"></Button>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:background="@drawable/btn_white_add_9"
android:text="Tag" android:layout_margin="2px"></Button>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:background="@drawable/btn_white_add_9"
android:text="Tag" android:layout_margin="2px"></Button>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:background="@drawable/btn_white_add_9"
android:text="Tag" android:layout_margin="2px"></Button>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:background="@drawable/btn_white_add_9"
android:text="This Tag is very big that it has full width :)" android:layout_margin="2px"
android:paddingLeft="5px" android:paddingRight="25px"></Button>
</LinearLayout>
</LinearLayout>
以上布局结果为......
但是当我对该代码做同样的事情时。
LinearLayout tagsTable = (LinearLayout) findViewById(R.id.tagsTable);
tagsTable.removeAllViews();
LinearLayout currentRow = new LinearLayout(this);
MarginLayoutParams params = new MarginLayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
Button button = new Button(this);
button.setTag(Id);
button.setText(Name);
button.setTextColor(0xFF736F6E);
button.setPadding(10, 0, 30, 0);
button.setOnTouchListener(new TagTouchListener());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(2, 2, 2, 2);
button.setLayoutParams(params);
button.setBackgroundResource(R.drawable.btn_blue_add_9);
currentRow.addView(button);
tagsTable.addView(currentRow);
突出的问题是垂直间距和按钮的大小,在两种情况下都会改变。 XML方式是完美的。我在代码中做错了什么?
答案 0 :(得分:2)
在xml中你有:
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
所以在java中你可以尝试:
currentRow.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);