1
我試圖創建按鈕後,我按下按鈕(這是一個預先製作的XML)。 事情是,我可以在LinearLayout中執行此操作,但是當我每次切換到RelativeLayout時,我的buttoncreator方法都會運行它,刪除以前創建的按鈕並創建一個新的按鈕。RelativeLayout按鈕創建
更具特色; 我buttoncreator方法
public void buttoncreator(String name,RelativeLayout.LayoutParams position,RelativeLayout layout){
positionrandomer(position);
final Button dummybutton = new Button(this);
dummybutton.setText(name);
//these are here for test,it works but still i have the same problem
position.addRule(RelativeLayout.BELOW,R.id.button1);
position.addRule(RelativeLayout.BELOW,R.id.button2);
dummybutton.setLayoutParams(position);
layout.addView(dummybutton);
return;
}
(位置randomer是它設置隨機邊距的方法)。
其中i調用創建器方法的地方
Button luckbutton = (Button) findViewById(R.id.button1);
luckbutton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View arg0) {
name="Blue";
buttoncreator(name,position,layout);
name="Blu4e";
buttoncreator(name,position,layout);
}
});
所以,我打算在1個buttonclick創建2個按鈕,但是它僅創建1.(實際上,它創建的第一個然後將其刪除,並創建第二個 )。
Appereantly有一些我不明白RelativeLayouts, 我做錯了什麼?
THX提前
感謝您的快速回答,但是由於代碼的目的,這些按鈕必須是非預定義的:/。 這在LinearLayout中非常有用,爲什麼它在Relativelayout中以這種方式運行? – Ozan
其實我很確定這是創建兩個按鈕。與RelativeLayout的事情是,你必須設置'layout_below/layout_above' params來對齊視圖。如果你不這樣做,他們將被卡在相同的位置,這就是爲什麼你認爲它只創建第二個按鈕。嘗試將您的第一個文本設置爲更長的文本,例如:'gdvasjdhaskdhajdhasj',您將看到它將保留在第二個按鈕下。 –
完成,是的,我已經嘗試過,你說得對。當我修復代碼時,我會回來。非常感謝。 – Ozan