我正在创建一些按钮并将它们添加到线性布局中,该布局定义为
<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);
删除保证金?这有什么缺点吗?
答案 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);
}