3

動的に生成された線形レイアウトを含む1つの主要な線形レイアウトがあります。これらのレイアウトをACTION_DOWNでアニメーション化しています。しかし、あるレイアウトのマージン(上または下)を変更しようとすると、他のレイアウトにも影響します。他に影響を与えずに1つのレイアウトマージンを変更する方法。

どんな助けでも集会をいただければ幸いです。

ありがとう。

編集

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

1 に答える 1

0

あなたが呼んでいるので

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

動的に生成されるすべてのレイアウトについて、これらの値を変更すると、動的に生成されるすべてのレイアウトに影響します。

代わりにあなたはあなたを変えることができます

getLinearView() method to getLinearView(int margin_value)

また、動的に生成されたレイアウトに対してこのメ​​ソッドを呼び出すたびに、その特定のレイアウトに必要な値を渡すことができます。

例:5つのレイアウトがあり、最初の1つを50に、他の1つを20に設定したい場合

for(int i=0;i<5;i++)
{
 if(i==0)
  view=getLinearView(50);
 else
  view=getLinearView(20);
}
于 2012-10-04T05:48:21.057 に答える