出自:http://stackoverflow.com/questions/7905885/margin-set-programmatically-on-radiobutton-not-applied?answertab=active#tab-top
情景:今天朋友问我,他在RadioGroup下动态添加的RadioButton不能设置间距,试了很多种方案也是不行。
以下代码与我的写的类似
源码:
layout
<RadioGroup android:id="@+id/rg_nav" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> </RadioGroup>
float density = getResources().getDisplayMetrics().density; rg_nav = (RadioGroup) findViewById(R.id.rg_nav); LinearLayout.LayoutParams params_rb = new LinearLayout.LayoutParams( (int)(8*density), (int)(8*density)); int margin = (int)(6*density); params_rb.setMargins(margin, margin, margin, margin); for(String url : product.list_url_pic){ RadioButton radio_btn = new RadioButton(ProductHome.this); radio_btn.setButtonDrawable(R.drawable.rb_nav); radio_btn.setId(rb_id++); rg_nav.addView(radio_btn, params_rb); }
后来我在用radioBtn.getParams();结果会报空指针异常。
解决方案:
最后在stackoverflow找到了解决方案。其实只要把
LinearLayout.LayoutParams 改成 RadioGroup.LayoutParams就可以了
在这里感谢 我的朋友大大大勇气。