Android Radiogruppe, Teiler zwischen Radiobuttons
Gibt es eine einfache Möglichkeit zum hinzufügen einer Trennlinie zwischen RadioButtons
innerhalb einer RadioGroup
? Ich habe versucht, mit der divider
xml-Attribut und es scheint nicht zu funktionieren. Falls es relevant ist, die RadioGroup
in meinem layout enthält keine untergeordneten Ansichten; ich bin das hinzufügen der RadioButtons
programmgesteuert.
BEARBEITEN: Problem gelöst. Sie können Ansichten hinzufügen neben RadioButton
innen RadioGroup
in der xml. In meinem Fall, Sie können es auch tun, programmatisch, aber seien Sie vorsichtig über Ihr layout params. Akki hatte die richtige Idee, und dieser arbeitete für mich:
for (int i = 0; i < items.size(); i++) {
if (i > 0) {
//add a divider with height of 1 pixel
View v = new View(this);
v.setLayoutParams(new RadioGroup.LayoutParams(LayoutParams.MATCH_PARENT, 1));
v.setBackgroundColor(android.R.color.darker_gray);
mRadioGroup.addView(v);
}
RadioButton rb = new RadioButton(this);
/* set other properties ... */
mRadioGroup.addView(rb);
}
Kommentar zu dem Problem
Es kann hilfreich sein, wenn Sie könnte ein Bild von dem, was Sie versuchen zu machen.
radio group ist abgeleitet von linearer Anordnung so erstellen Sie ein view-Objekt und fügen Sie es nach jedem radio-button, außer den letzten.
mtmurdock: ich brauche nur eine dünne horizontale Linie zwischen jedem Punkt. Akki: ich dachte, aber hoffte, dass es war etwas einfacher. Es scheint wie ein ziemlich offensichtliche Anwendungsfall, dass man erwarten würde, dass Google zu dem gemacht haben Rückstellungen für im Rahmen.
InformationsquelleAutor der Frage Karakuri | 2012-05-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
, Die die Arbeit für Sie. Und ich bin wirklich neugierig, wie Sie hinzufügen Ansicht in der Gruppe Anzeigen? Das sollte dazu führen, dass classcastexception-Fehler, nicht ?
InformationsquelleAutor der Antwort smilingky
Hier ein workaround:
Erstellen Sie zuerst eine Shape Drawable als Ihr Teiler. Hier ist ein Beispiel:
Dies ist nur ein einfacher schwarzer Rand. Legen Sie es in Ihrem drawable/Ordner und nennen Sie es so etwas wie custom_divider.xml.
Dann gehen Sie zu Ihrem layout verwendet einen RadioGroup. Verwenden Sie die ShapeDrawable als hintergrund für jede der RadioButton(s). Hier ist ein Beispiel:
Können Sie auch hinzufügen, eine ShapeDrawable zu Ihrem RadioGroup. Es hängt von Ihnen, können Sie ihn anpassen, wenn Sie benötigen. 🙂
Hier ist mein Beispiel für eine RadioGroup mit benutzerdefinierten Grenze (mit Ecke radius) und benutzerdefinierte Teiler ShapeDrawable(s).
InformationsquelleAutor der Antwort KarenAnne
Erstellen von shape drawable darstellt Teiler (Genannt "radio_group_divider"):
Verwenden Sie dieses drawable als "Teiler" in der RadioGroup:
InformationsquelleAutor der Antwort David