Андроид добавляет дополнение между кнопками радиогруппы программно

У меня есть радиогруппа в xml, и кнопки генерируются программно. Как добавить промежуток между кнопками программно.

Я думал, что это что-то вроде LayoutParams, но мой объект не имеет очевидного метода setPadding или setMargins.

Это то, что я пытался

RadioButton currentButton = new RadioButton(context);
            currentButton.setText(item.getLabel());
            currentButton.setTextColor(Color.BLACK);

            //add padding between buttons
            LayoutParams params = new LayoutParams(context, null);
            params. ... ??????
            currentButton.setLayoutParams(params);

Ответ 1

Перетяжка

Обычный LayoutParams не имеет методов для применения отступов, но представления выполняются. Поскольку RadioButton является подклассом представления, вы можете использовать View.setPadding(), например:

currentButton.setPadding(0, 10, 0, 10);

Это добавляет 10px отступы вверху и 10px внизу. Если вы хотите использовать другие единицы рядом с px (например, dp), вы можете использовать TypedValue.applyDimension(), чтобы сначала преобразовать их в пиксели.

Поля

Поля применяются к некоторым классам LayoutParams, подклассу MarginLayoutParams. Обязательно используйте определенный подкласс при настройке поля, например. RadioGroup.LayoutParams вместо общего ViewGroup.LayoutParams(когда ваш родительский макет - RadioGroup). Затем вы можете просто использовать MarginLayoutParams.setMargins().

Пример:

RadioGroup.LayoutParams params 
           = new RadioGroup.LayoutParams(context, null);
params.setMargins(10, 0, 10, 0);
currentButton.setLayoutParams(params);