2012-09-05 62 views
1

在我的應用程序中,我需要通過代碼創建一個RadioGroup和2 RadioButtons。我需要對齊RadioGroup內的RadioButton,一個在左邊,另一個在RadioGruop的右邊。我知道如果我將這些單選按鈕添加到LinearLayout中,這些將解決此問題,但在這種情況下,RadioGroup的屬性一次只檢查一個RadioButton並不再可用。 這裏是我的代碼:在Android中對齊RadioGroup中的RadioButtons(由代碼創建)

TableRow.LayoutParams lp_radio1 = new TableRow.LayoutParams(
               TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT); 
TableRow.LayoutParams lp_radio2 = new TableRow.LayoutParams(
               TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT); 
TableRow.LayoutParams lp_radiogr = new TableRow.LayoutParams(
               width, height); 
    lp_radio1.setMargins(left, left, top2, 0); 
    lp_radio1.gravity=Gravity.LEFT; 
    lp_radio1.weight=1; 
    lp_radio2.setMargins(left, left, top2, 0); 
    lp_radio2.gravity=Gravity.RIGHT; 
    lp_radio2.weight=1; 

product_radiogroup = new RadioGroup(viewToLoad.getContext()); 
      product_radiogroup.setLayoutParams(lp_radiogr);            product_radiogroup.setOrientation(RadioGroup.HORIZONTAL);         product_radiogroup.setBackgroundResource(R.drawable.radio_group_background); 
    product_radiobuttonYES = new RadioButton(viewToLoad.getContext()); 
    product_radiobuttonYES.setLayoutParams(lp_radio1); 

product_radiobuttonYES.setTextColor(R.color.medium_gray);   
    product_radiobuttonNO = new RadioButton(viewToLoad.getContext()); 
    product_radiobuttonNO.setLayoutParams(lp_radio2); 
    product_radiobuttonNO.setTextColor(R.color.medium_gray); 
    product_radiogroup.addView(product_radiobuttonYES); 
    product_radiogroup.addView(product_radiobuttonNO); 

,這裏是我的結果:

enter image description here

任何人任何想法如何解決這個問題?提前致謝。

回答

1

我不認爲這個解決方案是一個很好的一個,但因爲你知道你的radiogroup的確切widthheight,只需設置你的radiobuttonwidth/2代替wrap_content和其他屬性的width,如weightgravitylp_radio1lp_radio2可以被刪除。