Вам необходимо получить исходный код RadioGroup
из здесь , заменить все записи LinearLayout
на RelativeLayout
.
Добавьте этот код в некоторый XML-файл в вашем проекте (обычно его называют attrs.xml):
<resources>
<declare-styleable name="RadioGroup">
<attr name="android:checkedButton" />
</declare-styleable>
</resources>
Замените конструкторы RadioGroup
этими:
public RadioGroup(Context context) {
super(context);
if (!isInEditMode()) {
init();
}
}
public RadioGroup(Context context, AttributeSet attrs) {
super(context, attrs);
if (!isInEditMode()) {
TypedArray attributes = context.obtainStyledAttributes(
attrs, R.styleable.RadioGroup, 0,
android.R.style.Widget_CompoundButton_RadioButton);
int value = attributes.getResourceId(R.styleable.RadioGroup_checkedButton,
View.NO_ID);
if (value != View.NO_ID) {
mCheckedId = value;
}
attributes.recycle();
init();
}
}
Удалите следующий конструктор из внутреннего класса LayoutParams
:
public LayoutParams(int w, int h, float initWeight) {
super(w, h, initWeight);
}
Заменить все вхождения вызовов метода setOnCheckedChangeWidgetListener()
на метод setOnCheckedChangeListener()
. ВАЖНО : в этом случае будет невозможно использовать этот метод из кода, который использует этот виджет.
Не пробовал, но надеюсь, что это сработает.