Android-динамическая RadioGroup / RadioButtons как плоские кнопки - PullRequest
6 голосов
/ 28 апреля 2011

Эта проблема аналогична той, которая упоминается в сообщении , но я подумал, что он достаточно отличается, чтобы получить свой собственный вопрос. Вот оно:

Мне удалось заставить "радио-круг" исчезать без проблем при объявлении переключателей в xml, установив для атрибута кнопки переключателя значение null, например:

<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="One"
android:background="@drawable/radio_button_selector"
android:button="@null"/>

Но когда я пытаюсь объявить радио-кнопки динамически, я не могу заставить радио-круг исчезнуть, даже когда я делаю это:

myRadioButton.setButtonDrawable(null);

Вот мой пример, и хотя я установил кнопку, которую можно нарисовать, чтобы обнулить, радио-круг все еще появляется.

RadioGroup myRadioGroup = (RadioGroup)findViewById(R.id.myRadioGroup);
for (int i = 0; i < arrayListOfRadioButtonStringNames.size(); i++)
{
    RadioButton myRadioButton = new RadioButton(this);
    myRadioButton.setText(arrayListOfRadioButtonStringNames.get(i));
    myRadioButton.setButtonDrawable(null);
    myRadioButton.setBackgroundResource(R.drawable.radio_button_selector);
    myRadioGroup.addView(myRadioButton);
}
myRadioGroup.invalidate();

если вместо этого установить пустую кнопку, например:

myRadioButton.setButtonDrawable(android.R.id.empty);

радиокруг исчезает, но текст не попадает в область, где должен быть радиокруг. Вот немного искусства ascii, чтобы показать, что он делает:

setButtonDrawable (null): (O = радиокруг)

-------------------
| O  One | O  Two |
-------------------
* * SetButtonDrawable тысячи двадцать-одина (android.R.id.empty): * * тысяча двадцать два
-------------------
|    One |    Two |
-------------------

Я попытался установить гравитацию текста и т. Д., Чтобы текст помещался в это пустое пространство, но кажется, что "радиокруг" все еще существует, но его просто не видно.

Буду признателен за любую помощь по моему вопросу. Спасибо.

1 Ответ

1 голос
/ 30 мая 2011

Я видел, что вы уже исправили эту проблему, но мне просто интересно, пытались ли вы когда-либо использовать: setVisibility(View.GONE); Я думаю, что это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...