【问题标题】:Android - changing margin issue?Android - 更改保证金问题?
【发布时间】:2012-10-04 13:48:21
【问题描述】:

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

【问题讨论】:

  • 尝试将这些布局与一些不变的(静态)布局对齐,而不是改变布局。
  • 你确定没有在所有动态生成的LinearLayouts中设置相同的LayoutParams,让它们共享布局属性吗?
  • @Luksprog 我已经更新了我的问题。这就是我添加布局的方式。

标签: android android-linearlayout margin


【解决方案1】:

我想既然你在打电话

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);
}

【讨论】:

  • 您的答案不是我想要的,但我仍然感谢您的努力。谢谢。
猜你喜欢
  • 2023-03-26
  • 2016-06-06
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-17
相关资源
最近更新 更多