Ist es möglich, ein wenig Platz zwischen einem RadioButton und dem Etikett zu schaffen, während die integrierten Komponenten von Android verwendet werden? Standardmäßig sieht der Text etwas zerknittert aus.
<RadioButton android:id="@+id/rb1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="My Text"/>
Ich habe ein paar Dinge ausprobiert:
Das Festlegen von Rand und Abstand scheint Platz um das gesamte Element (Schaltfläche und Text zusammen) zu schaffen. Das macht Sinn, macht aber nicht das, was ich brauche.
Erstellen einer benutzerdefinierten Zeichnung über XML, in der Bilder für den aktivierten und den nicht aktivierten Status angegeben werden, und Hinzufügen einiger zusätzlicher Pixel auf der rechten Seite jedes Bilds. Dies sollte funktionieren, aber jetzt verlassen Sie die Standardbenutzeroberfläche. (Nicht das Ende der Welt, aber nicht ideal)
Fügen Sie am Anfang jedes Etiketts zusätzliche Leerzeichen hinzu. Android scheint ein führendes Leerzeichen wie in "My String" zu kürzen, aber die Angabe von Unicode U + 00A0 wie in "\ u00A0My String" reicht aus. Das funktioniert, aber es scheint irgendwie schmutzig.
Irgendwelche besseren Lösungen?
quelle
Sie sind sich nicht sicher, ob dies Ihr Problem beheben wird, haben jedoch die Eigenschaft "Padding left" von Radio Button mit einem Wert von 50dip oder mehr ausprobiert
quelle
Ich habe verschiedene Möglichkeiten ausprobiert und bin damit fertig geworden, dass diese sowohl auf dem Emulator als auch auf den Geräten korrekt funktioniert:
quelle
Fügen Sie einen Rand zwischen einem Radiobutton und seiner Beschriftung hinzu, indem Sie links auffüllen :
Stellen Sie einfach Ihre benutzerdefinierte Polsterung ein .
Die XML-Eigenschaft von RadioButton.
Getan
quelle
Verwenden Sie die folgenden XML-Attribute. Es hat bei mir funktioniert
Für API <= 16 verwenden
Für API> = 17 verwenden
Z.B:
Weiter Mehr:
drawablePadding
Attribut funktioniert nicht. Dies funktioniert nur, wenn Sie Ihrem Optionsfeld ein Zeichen hinzugefügt haben. Zum Beispiel:quelle
Sie können dies derzeit nicht versuchen, um zu überprüfen, aber haben Sie versucht zu sehen, ob das Attribut android: drawablePadding genau das tut, was Sie benötigen?
quelle
quelle
Der Abstand zwischen den Zeichen und dem Text. Dies wird durch Hinzufügen der folgenden Zeile in der XML-Datei erreicht.
android:drawablePadding="@dimen/10dp"
quelle
@dimen/10dp
schlechte PraxisIch habe versucht, "android: paddingLeft" wird funktionieren. paddingLeft wirkt sich nur auf den Text aus, während das Radiobild an der ursprünglichen Position bleibt.
quelle
Das "android: paddingLeft" scheint nur unter android 4.2.2 korrekt zu funktionieren
Ich habe fast alle Versionen von Android ausprobiert und es funktioniert nur auf der Version 4.2.2.
quelle
Ich verwende einen anderen Ansatz, der meiner Meinung nach auf allen API-Versionen funktionieren sollte. Anstatt Padding anzuwenden, füge ich RadioButtons eine leere Ansicht hinzu:
Dies sollte Ihnen 20dp Polsterung geben.
quelle
Ich kam hierher, um nach einer Antwort zu suchen, und der einfachste Weg (nach einigem Überlegen) war, den Abstand am Anfang des Etiketts selbst so hinzuzufügen
quelle
für mich funktioniert:
quelle
quelle
Sie können diesen Code in Ihrer XML-Datei verwenden
oder verwenden Sie dies für die Aktivitätsklasse
quelle
Verwenden Sie die Schwerkraft
quelle
Erstellen Sie einen solchen Stil in style.xml
Setzen Sie diesen Stil in das Optionsfeld
Sie können jedes Attribut wie die Schaltfläche ändern, da RadioButton die Schaltfläche indirekt erbt.
quelle
Ich weiß, dass es eine alte Frage ist, aber mit dieser Lösung habe ich endlich Ruhe und vergesse die API-Ebene.
Linke Seite vertikale RadioGroup mit rechter Seite vertikale Textansicht.
quelle
Sie können versuchen, das Schwerkraftattribut des Optionsfelds zu verwenden.
Dadurch wird der Text ganz rechts ausgerichtet. Schauen Sie sich das erste Radio im Bild an.
quelle