Android - 更改边距问题?

3

我有一个主线性布局,其中包含动态生成的线性布局。我在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;
}

尝试将这些布局与一些不变的(静态)布局对齐,而不是更改布局。 - Rajeev N B
你确定你没有在所有这些动态生成的LinearLayout中设置相同的LayoutParams,使它们共享布局属性吗? - user
@Luksprog,我已经更新了我的问题。这是我添加布局的方式。 - Varundroid
1个回答

0

我认为既然你在调用

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

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

相反,您可以更改您的getLinearView()方法为getLinearView(int margin_value)

每次为您动态生成的布局调用此方法时,您都可以传递您想要的特定布局的值。

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

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

你的回答不是我想要的,但我仍然感谢你的努力。谢谢。 - Varundroid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接