2013-03-05 2 views
0

enter image description hereКак я могу поместить такие кнопки?

Я хочу поставить свою цифровую кнопку так. Это мой код:

LinearLayout layout = new LinearLayout(this); 
     layout.setOrientation(LinearLayout.VERTICAL); 

     LinearLayout layout2 = new LinearLayout(this); 
     layout2.setOrientation(LinearLayout.HORIZONTAL); 

     TextView titleView = new TextView(this); 
     titleView.setText("Hello World!"); 
     layout.addView(titleView); 

     android.widget.LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
       LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT, 1); 
     android.widget.TableLayout.LayoutParams params = new TableLayout.LayoutParams(
       LayoutParams.MATCH_PARENT, LayoutParams.FILL_PARENT, 1); 

     Button btnConnect = new Button(this); 
     btnConnect.setText("Connect"); 
     btnConnect.setLayoutParams(param); 
     layout2.addView(btnConnect); 

     Button btnDisconnect = new Button(this); 
     btnDisconnect.setText("Disconnect"); 
     layout2.addView(btnDisconnect); 
     btnDisconnect.setLayoutParams(param); 


     layout.addView(layout2); 

     TableLayout tblLayout = new TableLayout(this); 
     tblLayout.setOrientation(TableLayout.HORIZONTAL); 
     TableRow tblrow = null; 



     for (int i = 1; i <= 9; i++) { 
      if (i % 3 == 1) { 
       tblrow = new TableRow(this); 
       tblLayout.addView(tblrow); 

      } 

      Button b = new Button(this); 
      b.setText("" + i); 
      tblrow.addView(b); 
     } 




     TableRow tr = new TableRow(this); 
     Button btnZero = new Button(this); 
     btnZero.setText("0"); 
     Button btnHash = new Button(this); 
     btnHash.setText("#"); 
     Button btnStar = new Button(this); 
     btnStar.setText("*"); 
     tr.addView(btnZero); 
     tr.addView(btnHash); 
     tr.addView(btnStar); 
     tblLayout.addView(tr); 




     layout.addView(tblLayout); 
     setContentView(layout); 

это соответствует:

enter image description here

Для того, чтобы мои столбцы так. Я использовал этот код:

android.widget.TableLayout.LayoutParams params = new TableLayout.LayoutParams(
       LayoutParams.MATCH_PARENT, LayoutParams.FILL_PARENT, 1); 
tblLayout.setLayoutParams(param); 

но нет изменений. Что мне нужно сделать? Разве что Layoutparams недостаточно для этого?

+0

Вы можете поместить макет в макет. Например, вы можете накладывать верхние кнопки с помощью «LinearLayout», горизонтально, а остальные - с помощью «GridLayout». –

+0

Да, вы правы, мне нужно использовать TableLayout. Это необходимо – snnlaynnkrdsm

+2

Есть ли причина, по которой вы не делаете этого в XML-файле? Кажется, что излишнее динамическое создание этого кода. – dymmeh

ответ

2

Вы должны установить ширину layout, layout2, tblLayout, каждый tblRow и tr к MATCH_PARENT и каждая кнопка должна иметь равное layout_weight.

+0

LayoutParams.FILL_PARENT, 1 последний 1 это ширина не так, но не работает – snnlaynnkrdsm

Смежные вопросы