Ich versuche R.layout.simple_list_item_multiple_choice mit ListView zu verwenden. CheckedTextView wird in simple_list_item_multiple_choice.xml verwendet, aber wie kann ich das Kontrollkästchen linksbündig anstatt rechtsbündig machen lassen?Wie mache ich die Checkbox in Android CheckedTextView linksbündig statt rechtsbündig?
Antwort
Ich glaube nicht, dass Sie können. Betrachtet man die source code, scheint es, als ob das Häkchen ständig auf der rechten Seite gezeichnet ist. Und, um ehrlich zu sein, ich würde empfehlen, dass Sie dabei bleiben, aus Gründen der Konsistenz - Android wird ständig geklopft, weil seine Apps inkonsistente UIs haben.
In der unwahrscheinlichen Fall, dass jemand eine Waffe an dem Kopf zeigt, zwingen Sie die Platzierung des Häkchens zu ändern, Unterklasse CheckedTextView
als OMGPleaseDontShootCheckedTextView
und Methoden außer Kraft setzen wie onDraw()
, mit gezwickt Versionen des Originals, dass die Platzierung von Änderungen das Bild und der Text.
Erstellen Sie Ihre eigene Zeilenvorlage und legen Sie Android: DrawableLeft auf der CheckedTextView.
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="40dip"
android:gravity="center_vertical"
android:paddingLeft="5dip"
android:drawableLeft="?android:attr/listChoiceIndicatorMultiple"
/>
oder
android:drawableLeft="?android:attr/listChoiceIndicatorSingle"
Das hindert Sie daran, die zusammengesetzte Zeichenfunktionalität zusammen mit dem Häkchenindikator zu verwenden (was CheckedTextView standardmäßig zulässt). Ich denke @CommonsWare Antwort ist passender. –
android: drawableLeft = "android: attr/listChoiceIndicatorMultiple": P
Das Geheimnis in Android ist: Häkchen machen es null
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/checked_text_single_choice"
android:layout_width="match_parent"
android:layout_height="52dp"
android:checkMark="@null"
android:gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceSmall"
android:drawableLeft="?android:attr/listChoiceIndicatorSingle"
android:drawableRight="@null"
android:textColor="@android:color/black"
/>
Ich kann nicht glauben, dass dies funktioniert. danke – j2emanue
working solution – vuhung3990
was magie ist das? es ist nicht einmal logisch, aber funktioniert! – Ogbe
versuchen Sie dieses und hoffen, dass es Ihnen einige Ideen
geben wird 0<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Connection lost sound alert"
android:layout_weight="10"
android:layout_gravity="center"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="2"
android:layout_gravity="right"
android:orientation="horizontal" >
<CheckBox android:id="@+id/checkbox_meat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:onClick="onCheckboxClicked"/>
</LinearLayout>
</LinearLayout>
Wenn Sie das Kontrollkästchen auf der linken Seite möchten, verwenden Sie einfach eine CheckBox
. Vielleicht ist es nicht selbstverständlich, aber ein CheckBox
kann Text enthalten. Sie können diesen Text definieren, indem Sie ein XML-Attribut android:text hinzufügen oder die Methode setText() aufrufen. Eigentlich CheckBox
ist von Button
vererbt, die von TextView
erbt, deshalb hat es alle textbezogenen Eigenschaften.
hinzugefügt Beispiel 'CheckBox' xml mit Screenshot in separaten Antwort –
Ein Beispiel für den Vorschlag von @ WonderCsabo, CheckBox zu verwenden.
<CheckBox
android:id="@+id/create_account_checkedTextView_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show"
android:gravity="center"
android:checked="true"
# relative layout params
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_above="@+id/hint1" />
Es kann wie in diesem Beitrag einen Trick mit Überprüfbar-Layout sein - https://chris.banes.me/2013/03/22/checkable-views/ . Verwenden Sie einfach einige benutzerdefinierten Layouts wie dies als Listview-Element Layout:
<com.example.custom_view.CheckableLinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckedTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checkMark="?android:attr/listChoiceIndicatorSingle"
android:duplicateParentState="true"
.../>
<TextView
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
.../>
</com.example.custom_view.CheckableLinearLayout>
oder
android:checkMark=?android:attr/listChoiceIndicatorMultiple"
Sie Ihre ziehbar zu drawableLeft Attribute zuweisen kann, aber es wird dir nicht gut, weil es nicht Tönungs unterstützen . Stattdessen erweitert ich CheckedTextView wie folgt aus:
public class LeftSideCheckedTextView extends CheckedTextView {
public LeftSideCheckedTextView(Context context) {
this(context, null, 0);
}
public LeftSideCheckedTextView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public LeftSideCheckedTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
Field mCheckMarkGravity = null;
try {
mCheckMarkGravity = this.getClass().getSuperclass().getDeclaredField("mCheckMarkGravity");
mCheckMarkGravity.setAccessible(true);
mCheckMarkGravity.set(this, Gravity.START);
} catch (Exception e) {
Logger.error(e);
}
}
}
Hier habe ich das versteckte Feld mCheckMarkGravity zugreifen, die im Inneren CheckedTextView verwendet wird, haben aber keinen Zugriff über Stilattribute, nach diesem Fehler Ticket: https://code.google.com/p/android/issues/detail?id=174517
- 1. Listview-Reihe styling - linksbündig Text und rechtsbündig Symbol
- 2. Meine Checkbox erscheint nicht in meiner CheckedTextView
- 3. Graphviz - wie mache ich den Text in Etiketten linksbündig?
- 4. Android ListView CheckedTextView Blinkend
- 5. Liste mit Titel und Bild linksbündig und Text rechtsbündig erstellen?
- 6. Wie mache ich eine ListPreference mit Checkbox
- 7. Wie mache ich eine Checkbox in Kreisform mit benutzerdefinierten CSS?
- 8. Wie rechtsbündig ein HBoxLayoutContainer Innerhalb eines VBoxLayoutContainer
- 9. wie man LinearLayout anstelle von CheckedTextView in android verwendet Listenansicht
- 10. Android checkMarkGravity Attribut CheckedTextView (api 21)
- 11. Text in CheckedTextView nicht
- 12. Wie mache ich einen Piepton in Android?
- 13. Endkammer mit linksbündig und rechtsbündig Element Umhüllung und Füllung voller Höhe
- 14. Wie mache ich eine Checkbox eine Funktion auslösen?
- 15. Anzeige Checkbox unten statt Drop
- 16. Wie bekomme ich einen TextBlock rechtsbündig?
- 17. Wie mache ich eine Variable = zwei andere statt nur einer
- 18. Wie mache ich die NSOperationQueue seriell?
- 19. Wie bekomme ich CheckBox von ListView Android?
- 20. CheckedTextView ist in ListView nicht anklickbar
- 21. Linksbündig Gleichungsblock
- 22. Was mache ich statt PyString_AsString verwenden, wenn in 3.3
- 23. Wie mache ich die zentrierten Ausrichtung der ListView-Einträge? (Android)
- 24. Wie mache ich genaue Timer auf Android?
- 25. Graue CheckBox in Android
- 26. Wie bekomme ich Checkbox-Status in erweiterbare Listview in Android
- 27. Wie bekomme ich CheckBox-Wert in RadioGoup in Android?
- 28. Wie richte ich Text in einer HTML-Textbox rechtsbündig aus?
- 29. android Spinner Drop-Down-Checkbox
- 30. str.format() -> wie man linksbündig
Dank Dies ist hilfreich ! –
Jetzt mit Material Design Häkchen sollten auf der linken Seite sein, aber der Code, um dies zu erlauben ist leider privat, so kann nicht einfach rückportiert werden. –