以编程方式添加单选按钮显示在屏幕外

时间:2014-05-02 22:40:44

标签: android view radio-button

我正在添加一个带有单选按钮的广播组,如下所示:

RadioGroup control =  new RadioGroup( this.getActivity() );
String[] items = content.getDesc().split(",");
control.setOrientation(RadioGroup.HORIZONTAL);
control.setLayoutParams(new LayoutParams(
    LayoutParams.MATCH_PARENT,
    LayoutParams.WRAP_CONTENT));
for(int i = 0; i < items.length; i++){
    RadioButton rBtn  = new RadioButton( this.getActivity() );
    rBtn.setId(i);
    rBtn.setChecked(true);
    rBtn.setText(items[i]);
    control.addView(rBtn); 
}
control.setTag(content.getId());
controlList.add(control);
layout.addView(control); //layout is a linear layout

然而,对于i的某些值(我的手机上有2个),单选按钮开始出现在屏幕上。有没有办法设置它,以便它们自动溢出到下一行,如果它们不在屏幕上?

2 个答案:

答案 0 :(得分:1)

据我所知,无线电组只能存在于一行中。如果您在屏幕上溢出的物品出现问题,我建议您使用垂直组或旋转器。

答案 1 :(得分:1)

您将方向设置为水平。在某些时候,您将在屏幕上耗尽水平空间,因此水平RadioGroup将具有超出屏幕边界的子节点。除非你将它包装在Horizo​​ntalScrollView中,否则它们将不可见。

最好让它垂直,或者找一些其他方式向用户呈现此控件(如Spinner)。