将布局首选项应用于 android radiogroup 中动态添加的按钮
applying layout preferences to dynamically added buttons in android radiogroup
我试图研究所有可能的答案,但我真的不知道如何继续。
我正在动态地将单选按钮创建到单选组中
for (int i = 0; i < keys.length; i++) {
final RadioButton rdbtn = new RadioButton(this);
rdbtn.setId(View.generateViewId());
rdbtn.setText(keys[i]);
rdbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedWH = rdbtn.getText().toString();
}
});
mRgAllButtons.addView(rdbtn);
}
我想将此样式应用于按钮
<RadioButton
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginStart="60dp"
android:layout_marginEnd="60dp"
android:background="@drawable/radio_pressed"
android:button="@android:color/transparent"
android:textAlignment="center"
android:textColor="@color/colorPrimary"
android:textSize="18sp"
android:textStyle="bold" />
非常感谢任何帮助。
ViewGroup.MarginLayoutParams marginLayoutParams = new ViewGroup.MarginLayoutParams(yourWidth, yourHeight);
marginLayoutParams.leftMargin = yourLeftMargin;
marginLayoutParams.rightMargin = yourRightMargin;
rdbtn.setLayoutParams(marginLayoutParams);
将此添加到您的代码中,以便为您正在动态创建的视图设置布局参数,您必须为其创建 LayoutParams。在那里你可以设置任何你想要的边距。
这是一个简单的方法。您可以从 XML 创建一个 RadioButton
视图实例,这样它将具有您想要的样式。
- 使用
RadioButton
元素和样式创建 XML 布局 - 正是您提到的内容。
- 使用该布局创建一个新的 RadioButton 视图(并将其添加到 RadioGroup)。
LayoutInflater inflater = LayoutInflater.from(context);
for (int i = 0; i < keys.length; i++) {
final RadioButton rdbtn = inflater.inflate(R.layout.layout_name, mRgAllButtons, false);
// mRgAllButtons - parent of this view.
// attachToParent - false - add to the parent manually.
rdbtn.setId(View.generateViewId());
rdbtn.setText(keys[i]);
rdbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedWH = rdbtn.getText().toString();
}
});
mRgAllButtons.addView(rdbtn);
}
我试图研究所有可能的答案,但我真的不知道如何继续。 我正在动态地将单选按钮创建到单选组中
for (int i = 0; i < keys.length; i++) {
final RadioButton rdbtn = new RadioButton(this);
rdbtn.setId(View.generateViewId());
rdbtn.setText(keys[i]);
rdbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedWH = rdbtn.getText().toString();
}
});
mRgAllButtons.addView(rdbtn);
}
我想将此样式应用于按钮
<RadioButton
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginStart="60dp"
android:layout_marginEnd="60dp"
android:background="@drawable/radio_pressed"
android:button="@android:color/transparent"
android:textAlignment="center"
android:textColor="@color/colorPrimary"
android:textSize="18sp"
android:textStyle="bold" />
非常感谢任何帮助。
ViewGroup.MarginLayoutParams marginLayoutParams = new ViewGroup.MarginLayoutParams(yourWidth, yourHeight);
marginLayoutParams.leftMargin = yourLeftMargin;
marginLayoutParams.rightMargin = yourRightMargin;
rdbtn.setLayoutParams(marginLayoutParams);
将此添加到您的代码中,以便为您正在动态创建的视图设置布局参数,您必须为其创建 LayoutParams。在那里你可以设置任何你想要的边距。
这是一个简单的方法。您可以从 XML 创建一个 RadioButton
视图实例,这样它将具有您想要的样式。
- 使用
RadioButton
元素和样式创建 XML 布局 - 正是您提到的内容。 - 使用该布局创建一个新的 RadioButton 视图(并将其添加到 RadioGroup)。
LayoutInflater inflater = LayoutInflater.from(context);
for (int i = 0; i < keys.length; i++) {
final RadioButton rdbtn = inflater.inflate(R.layout.layout_name, mRgAllButtons, false);
// mRgAllButtons - parent of this view.
// attachToParent - false - add to the parent manually.
rdbtn.setId(View.generateViewId());
rdbtn.setText(keys[i]);
rdbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedWH = rdbtn.getText().toString();
}
});
mRgAllButtons.addView(rdbtn);
}