线性布局中的按钮边距

时间:2011-01-20 06:02:11

标签: android user-interface

我正在创建一些按钮并将它们添加到线性布局中,该布局定义为

<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/mylayout">

    </LinearLayout>

使用

创建按钮
for (int i = 0; i < 3; i++)

    {
        Button btn = new Button(activity);
        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);
        lp.setMargins(1, 1, 1, 1);

        btn.setText("Button");
        btn.setPadding(0, 0, 0, 0);

        mylayout.addView(pv, lp);

    }

这些按钮总是有一个边距(约3px),我想删除。有什么我想念的吗?如果我使用我创建的自定义视图,它们之间就没有空格。

我应该设置

lp.setMargins(-3,-3,-3,-3);

删除保证金?这有什么缺点吗?

2 个答案:

答案 0 :(得分:11)

我真的认为他们没有保证金,但它与按钮的背景有关。该按钮的默认背景可能包含如下图像:

http://developer.android.com/guide/developing/tools/draw9patch.html

包括小说边距。在这里您可以找到有关9-Patch的更多信息。

http://developer.android.com/guide/topics/resources/drawable-resource.html

在我看来,如果你想删除“边距”,你应该为图像创建一个不同的背景,因为-3值不是一个好的解决方法(IHMO)。

答案 1 :(得分:0)

为什么使用Layout Params ..只需在创建后添加视图... 这肯定会消除问题

for(int i = 0; i&lt; 3; i ++)

{
    Button btn = new Button(activity);


    btn.setText("Button");


    mylayout.addView(pv);

}