Android按钮编程

时间:2011-09-23 14:47:56

标签: android layout button

我在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>

以上布局结果为......

enter image description here

但是当我对该代码做同样的事情时。

        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);

enter image description here

突出的问题是垂直间距和按钮的大小,在两种情况下都会改变。 XML方式是完美的。我在代码中做错了什么?

1 个答案:

答案 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);