#android #margin
#Android #поле
Вопрос:
Я пытаюсь установить поле для радиокнопок, добавленных программно в радиогруппу, но это не удается.: радиокнопки добавлены правильно, но у них 0 полей…
Кто-нибудь может помочь?
макет
<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);
}
Ответ №1:
Мне пришлось заменить
LinearLayout.LayoutParams params_rb = new LinearLayout.LayoutParams(
(int)(8*density),
(int)(8*density));
Автор:
RadioGroup.LayoutParams params_rb = new RadioGroup.LayoutParams(
(int)(8*density),
(int)(8*density));
Комментарии:
1. Для нас важно родительское представление radiobutton для генерации LayoutParams. Спасибо.
2. что такое плотность? @июль
3. @Erum Проверьте вопрос, он там определен.
Ответ №2:
Попробуйте это:
TableRow.LayoutParams rg_params = new TableRow.LayoutParams(0, LayoutParams.WRAP_CONTENT, 3f);
RadioGroup radio_group=new RadioGroup(this);
radio_group.setOrientation(RadioGroup.HORIZONTAL);
radio_group.setLayoutParams(rg_params);
RadioButton dry=new RadioButton(this);
RadioGroup.LayoutParams params_soiled = new RadioGroup.LayoutParams(getBaseContext(), null);
params_soiled.setMargins(10, 0, 10, 0);
dry.setLayoutParams(button_params);
Ответ №3:
Ваш код кажется правильным. Попробуйте применить LayoutParams
непосредственно к вашим кнопкам
radio_btn.setButtonDrawable(R.drawable.rb_nav);
radio_btn.setId(rb_id );
rg_nav.addView(radio_btn);
radio_btn.setLayoutParams(params_rb);
Комментарии:
1. @jul попробуйте проверить, что
margin
это не0
:Log.d("whatever", "margin value: " margin);