●在程式中寫layout,通常有兩種狀況
1.按鈕或圖案會因為雲端資料做改變,所以要用程式寫來控制動態的改變
2.layout很嚴謹,不能因為手機不同尺寸不同而有改變,這時就要用程式來控制
●程式--java code
protected void onCreate(Bundle savedInstanceState) {
int i;
super.onCreate(savedInstanceState);
//先把setContentView(R.layout.activity_main)刪除
LinearLayout ll=new LinearLayout(MainActivity.this);
//用for做三個一樣的按鈕
for (i=1;i<=3;i++){
//先設定layout的width,height,weight
LinearLayout.LayoutParams para=
new LinearLayout.LayoutParams
(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,1);
//其他屬性的設定可以如下
//para.gravity = Gravity.CENTER;
//para.bottomMargin=20;
Button btn=new Button(MainActivity.this);
btn.setText("hello");
//把設定好的layout設定給btn
btn.setLayoutParams(para);
final String str=String.valueOf(i);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();
}
});
//在linearlayout下加一個btn,因為btn也是view
ll.addView(btn);
}
//如果不用linearlayout,而是直接setContentView(btn);
//那就會有一個跟版面完全一樣大小的button
//可以直接設定linearlayout,因為linearlayout也是view
setContentView(ll);
}
●程式參考(GitHub):動態產生按鈕
文章標籤
全站熱搜