2012-10-04 65 views
3

我有一個主要的線性佈局,其中包含動態生成的線性佈局。我在ACTION_DOWN上爲這些佈局設置動畫。但是,如果我嘗試更改一個佈局的邊距(頂部或底部),它也會影響其他佈局。如何在不影響其他人的情況下更改一個版面邊距。Android - 更改保證金問題?

任何幫助將升值讚賞。

謝謝。

編輯

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; 
} 
+0

試着將那些佈局一些不改變(靜態)佈局,而不是改變佈局。 –

+0

您確定您沒有在所有這些動態生成的「LinearLayouts」中設置相同的'LayoutParams',使它們共享佈局屬性? – Luksprog

+0

@Luksprog我已經更新了我的問題。這是我添加布局的方式。 – Varundroid

回答

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

你的回答不是我一直在尋找的,但我仍然感謝你的努力。謝謝。 – Varundroid