Ich habe einen einfachen EditText mit layout_width="wrap_content"
. In den Attributen gibt es keine Abstände oder Ränder. Hier ist ein vollständiges Beispiel:Was kann Android beeinflussen: ems Größe?
<EditText
android:id="@+id/maskPrefix"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="3"
android:inputType="text|textCapCharacters|textNoSuggestions"
android:maxLength="5"
android:maxLines="1"
android:nextFocusDown="@+id/maskNum"
android:text="GA"
android:textSize="18sp"
tools:ignore="LabelFor" />
Alles ist in Ordnung, aber ... Aber:
- Wenn ich ems auf 1 gesetzt, es ist etwa 1 Zeichen breit;
- Wenn ich ems auf 2 setze, ist es etwa 2,5 Zeichen breit;
- Wenn ich ems auf 3 setze, ist es etwa 4,5 Zeichen breit;
- Wenn ich ems auf 4 setze, ist es etwa 6 Zeichen breit;
- Wenn ich ems auf 5 setze, ist es etwa 10 Zeichen breit;
- Wenn ich ems auf 10 setze, ist es etwa 20 Zeichen breit;
Wenn ich android:ems
entfernen und stattdessen maximale Breite über android:maxLength
einstellen, dann ist alles angemessen Breite. Aber ich brauche beide Attribute.
Warum ist meine EditText
Breite falsch? Was ist mit diesem mysteriösen Multiplikator? Ich benutze Theme.AppCompat.Light.NoActionBar
, neuesten Android-Studio (2.2.2) und kompilieren mit
compile "com.android.support:support-v4:25.0.1"
compile 'com.android.support:appcompat-v7:25.0.1'
Testing mit Android 6 in Nexus 5.
Welche Möglichkeit oder Attribut könnte Chaos android:ems
so schlecht?
UPD. Link zu löst mein Problem in keiner Weise. Außerdem ist es absolut richtig, sowohl android:textSize
als auch android:ems
einzustellen. Ich möchte Buchstaben meines Textes sein x sp groß und ich will, dass meine EditText
y Zeichen breit ist.
Sie setzen beide 'text_size' und' ems'. Überprüfen Sie diese http://stackoverflow.com/questions/10275348/what-is-androipems-attribute-in-edit-text – Chisko
@ Chisko Yup, ich setze beide, weil ich beide brauche. Und deine Verbindung ohne jede Erklärung ist ziemlich nutzlos.Es scheint, als ob du dachtest, dass dies Werte für denselben Zweck sind. Dann überprüfe noch einmal deinen eigenen Link;) – Jehy