Ja, dies wird benötigt, um den Text genau in der Mitte zu positionieren.
Code Droid
Antworten:
80
Damit die Zentrierung von Hinweistext mit EditText funktioniert, müssen Sie sicherstellen, dass android: ellipsize = "start" definiert ist. Ich weiß nicht, warum das funktioniert, aber es funktioniert.
Vielen Dank für die Veröffentlichung und willkommen bei StackOverflow! Ja, ellipsize = "start" wirkt sich darauf aus. Ich weiß auch nicht warum. Ohne es zeigt sich der Hinweis für mich nicht.
Code Droid
4
Ich denke, ich bin zu spät hier, aber heute habe ich diese Antwort gesehen und darauf hingewiesen, dass hier kein Android benötigt wird: ellipsize = "start", um ein Hinweiszentrum zu erstellen, AFAIK. Siehe meine Antwort. Vielleicht ist es auch nützlich.
Robi Kumar Tomar
1
Wie in anderen Antworten angegeben, ist es Android: Gravity = "Center" (oder eine ähnliche Variante), das den Text zentriert, nicht die Ellipsengröße.
hBrent
Warum wird diese Antwort akzeptiert? Ich nehme an, nur gravityzählt.
CoolMind
Dies könnte versehentlich bei älteren Android-Geräten funktionieren, jetzt funktioniert es nicht mehr.
Zeiger Null
38
Erzeugt tatsächlich android:gravity="center_horizontal"den gewünschten Zentrierungseffekt. Ebenso können Sie android:gravity="start"Hinweistext am Anfang der EditText-Ansicht usw. einfügen.
Vielen Dank. Ich habe es mit dem versucht android:ellipsize="start"und es gab keine Veränderung. Hinzufügen android:gravity="center_horizontal"hat den Trick gemacht. Danke noch einmal.
Ich habe diesen Code unter allen Umständen verwendet und er funktioniert perfekt ohne Android: ellipsize = "start" , um einen Hinweis in der Mitte zu machen.
Leider hat mir keine der Antworten geholfen, den in LTR-Sprache geschriebenen Hinweis auszurichten, während die Layoutorientierung RTL war. Ich brauchte ein solches Layout in einer Art Übersetzungsanwendung, damit Überlagerungssymbole den RTL-Text nicht beeinträchtigen. Dieser Trick funktionierte jedoch nicht mit Hinweisen, obwohl noch kein Text vorhanden war (Symbole wurden über dem Hinweis angezeigt), und ich kam zu der folgenden Java-Lösung für das Layoutproblem:
Der Trick bestand darin, von rechts nach links eine Zeichenfolge von links nach rechts vorzustellen. Und es scheint zu funktionieren, aber kennt jemand eine elegantere Lösung?
Mein Problem war, dass das EditTextnicht groß genug war, um genau in das übergeordnete Element zu passen ( FrameLayoutin meinem Fall). android:gravity="center"Wenn Sie also nur (center_vertical, horizontal, start oder was auch immer) verwenden, passt es einfach EditTextin das übergeordnete Element und nicht in das übergeordnete Element , also ich musste das EditTextInnere seines Elternteils zentrieren mit:
android:layout_gravity="center"
pd: Ich habe android:background="@android:color/transparent"die hässliche Unterstreichung im EditTextHinweis versteckt
Antworten:
Damit die Zentrierung von Hinweistext mit EditText funktioniert, müssen Sie sicherstellen, dass android: ellipsize = "start" definiert ist. Ich weiß nicht, warum das funktioniert, aber es funktioniert.
Beispiel aus persönlichem Code gezogen:
<EditText android:id="@+id/player2Name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:ellipsize="start" android:gravity="center_horizontal" android:hint="@string/player2_name" android:inputType="textCapWords|textPersonName" android:singleLine="true" />
quelle
gravity
zählt.Erzeugt tatsächlich
android:gravity="center_horizontal"
den gewünschten Zentrierungseffekt. Ebenso können Sieandroid:gravity="start"
Hinweistext am Anfang der EditText-Ansicht usw. einfügen.quelle
android:ellipsize="start"
und es gab keine Veränderung. Hinzufügenandroid:gravity="center_horizontal"
hat den Trick gemacht. Danke noch einmal.Verwenden Sie dieses XML-Attribut:
quelle
Attribut verwenden
android:gravity="center"
quelle
Ich habe diesen Code unter allen Umständen verwendet und er funktioniert perfekt ohne Android: ellipsize = "start" , um einen Hinweis in der Mitte zu machen.
<EditText android:id="@+id/player2Name" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:hint="robi" android:inputType="text" />
quelle
Ich denke, die Antwort sollte sein:
android:textAlignment="center"
quelle
textAlignment hat bei mir funktioniert.
textAlignment="center"
quelle
Leider hat mir keine der Antworten geholfen, den in LTR-Sprache geschriebenen Hinweis auszurichten, während die Layoutorientierung RTL war. Ich brauchte ein solches Layout in einer Art Übersetzungsanwendung, damit Überlagerungssymbole den RTL-Text nicht beeinträchtigen. Dieser Trick funktionierte jedoch nicht mit Hinweisen, obwohl noch kein Text vorhanden war (Symbole wurden über dem Hinweis angezeigt), und ich kam zu der folgenden Java-Lösung für das Layoutproblem:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { . . . if (isRightToLeft()){ EditText guess = (EditText) rootView.findViewById(android.R.id.text1); CharSequence hint = "\u200F" + guess.getHint(); guess.setHint(hint); } . . . }
Der Trick bestand darin, von rechts nach links eine Zeichenfolge von links nach rechts vorzustellen. Und es scheint zu funktionieren, aber kennt jemand eine elegantere Lösung?
quelle
<android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginEnd="16dp" android:layout_marginStart="16dp" android:layout_marginTop="8dp"> <android.support.design.widget.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:hint="ENTER PIN" android:inputType="numberPassword" /> </android.support.design.widget.TextInputLayout>
Hinweis: Im Tag TextInputEditText die Eigenschaft
Dies macht es aus, den Text in der Mitte einschließlich des Hinweistextes auszurichten
quelle
benutze dies: android :vity = "center"
quelle
Verwenden Sie
android:textAlignment="center"
in EditText, es funktioniert für michquelle
Ich benutze das und habe für mich gearbeitet
android:gravity="Left|center_vertical"
quelle
Das hat bei mir funktioniert:
<android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/nombreslayoutinput"> <EditText android:id="@+id/nombreslayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/nombres" android:layout_centerInParent="true" android:gravity="center|center_vertical" android:ellipsize="start" android:inputType="textCapWords|textPersonName" /> </android.support.design.widget.TextInputLayout>
quelle
Mein Problem war, dass das
EditText
nicht groß genug war, um genau in das übergeordnete Element zu passen (FrameLayout
in meinem Fall).android:gravity="center"
Wenn Sie also nur (center_vertical, horizontal, start oder was auch immer) verwenden, passt es einfachEditText
in das übergeordnete Element und nicht in das übergeordnete Element , also ich musste dasEditText
Innere seines Elternteils zentrieren mit:android:layout_gravity="center"
pd: Ich habe
android:background="@android:color/transparent"
die hässliche Unterstreichung imEditText
Hinweis verstecktquelle