以编程方式在片段中添加LinearLayout,并在按钮之间添加填充

时间:2014-01-15 11:27:18

标签: android android-layout android-fragments

我想知道如何在findviewID中添加或链接带有多个按钮(以编程方式添加)的LinearLayout以及它们之间的空格。我试图在我的片段中创建一个XML布局,并将其链接到LinearLayout类型的变量,并使用LayoutParams从那里工作,但我不能让它正常工作。我想知道这里是否有人有任何建议。下面是我的代码。

private GuiLoader guiloader = new GuiLoader();
private LinearLayout layout;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

    View v = inflater.inflate(R.layout.media_list_fragment, container, false);
    layout = (LinearLayout)v.findViewById(R.id.LinearLayout1);
    LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT, 2.0f);
    param.setMargins(100, 100, 100, 100);
    layout.setPadding(500, 86, 50, 50);
    layout.setLayoutParams(param);

并通过类

创建按钮
for (final VideoDevice videoDevice : videoDevices) {
        Button myButton = guiloader.createButton(getActivity());
        myButton.setBackgroundColor(getResources().getColor(R.color.green));
        myButton.setText(videoDevice.description);
        layout.addView(myButton, guiloader.buttonWidth, guiloader.buttonHeight);

提前致谢!

1 个答案:

答案 0 :(得分:0)

当你在LinearLayout上调用setPadding和setLayoutParams时 - 这会处理LinearLayout边缘周围的填充/边距 - 而不是按钮之间的填充/边距。

听起来你希望按钮之间有间隙。为此,你可以:

1)为for循环中的每个按钮添加一个边距

2)考虑使用GridView,它允许你使用android:horizo​​ntalSpacing和android:verticalSpacing

指定孩子之间的间距