2013-05-06 2 views
0

Я создал ряд кнопок динамически, но одна из кнопок имеет немного больше текста. Кнопки в этой строке имеют тот же размер, что и кнопка, содержащая больше текста, но эти строки кнопок больше других кнопок в других строках. Ниже мой код:Как сделать кнопки во всех рядах одинакового размера в Android?

LinearLayout dynamicview = (LinearLayout)findViewById(R.id.buttons); 

    for (int i = 0; i < 3; i++) { 
      LinearLayout row = new LinearLayout(this); 
      row.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 

      for (int j = 0; j < 5; j++) { 
       Button btnTag = new Button(this); 
       LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
         LayoutParams.MATCH_PARENT, 
         LayoutParams.MATCH_PARENT,1.0f); 

       btnTag.setLayoutParams(param); 
       Display display=getWindowManager().getDefaultDisplay(); 
       int width=display.getWidth(); 

       btnTag.setText("" + (j + 1 + (i * 5))); 
       btnTag.setId(j + 1 + (i * 5)); 
       btnTag.setWidth(width/5); 


       if(btnTag.getId() == 13) { 

        btnTag.setText("has more txt"); 

       } 
       if(btnTag.getId() == 14) { 
        btnTag.setVisibility(View.INVISIBLE); 
       } 
       if(btnTag.getId() == 15) { 
        btnTag.setText("C"); 
       } 
       row.addView(btnTag); 

      } 

      dynamicview.addView(row); 
} 

где R.id.buttons в XML является:

<LinearLayout 
    android:id="@+id/buttons" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_alignParentBottom="true"> 
</LinearLayout> 

Не могли бы вы, пожалуйста, дайте мне знать, если есть способ, которым я могу сделать все 3 ряда кнопок имеют одинаковую ширину и высоту?

спасибо.

ответ

0

setGravity (..) 'center' должен работать. Вы также можете попробовать режим растяжения колонки. Ваш код немного запутан, потому что похоже, что он делает больше, чем нужно.

Я буду ждать вашего ответа, прежде чем моделировать его на моей машине и отправить вам код

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