Android - 改变保证金问题?

时间:2012-10-04 04:59:36

标签: android android-linearlayout margin

我有一个主线性布局,其中包含动态生成的线性布局。我在ACTION_DOWN上设置了这些布局的动画。但是,如果我尝试更改一个布局的边距(顶部或底部),它也会影响其他布局。如何更改一个布局边距而不影响其他布局。

任何帮助都会受到赞赏。

感谢。

修改

public View getLinearView() {
    ChildLinearLayout linearLayout = new ChildLinearLayout(context);
    LayoutParams layoutParams = new LayoutParams(500, 500);
    linearLayout.setLayoutParams(layoutParams);
    linearLayout.setBackgroundColor(Color.RED);
    layoutParams.setMargins(20, 20, 20, 20);
    layoutParams.gravity = Gravity.CENTER_HORIZONTAL;
    TextView textView = new TextView(context);
    textView.setText("Hello World");
    linearLayout.addView(textView);
    System.out.println("View Added");
    views.add(linearLayout);
    return linearLayout;
}

1 个答案:

答案 0 :(得分:0)

我想,因为你在打电话

layoutParams.setMargins(20, 20, 20, 20) 

对于每个动态生成的布局,如果更改这些值,则会影响每个动态生成的布局。

相反,你可以改变你的

getLinearView() method to getLinearView(int margin_value)

每次为动态生成的布局调用此方法时,都可以为该特定布局传入所需的值。

例如: 如果我有5个布局,并且我想将第一个的边距设置为50,而将其他边距设置为20,那么

for(int i=0;i<5;i++)
{
 if(i==0)
  view=getLinearView(50);
 else
  view=getLinearView(20);
}