2012-07-03 21 views

risposta

65

Affinché il centraggio del testo del suggerimento funzioni con EditText è necessario assicurarsi che android: ellipsize = "start" sia definito. Non so perché questo lo fa funzionare, ma lo fa.

Esempio tirato dal codice personale:

<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" /> 
+0

Grazie per aver postato e benvenuto su StackOverflow! Sì, ellipsize = "start" ha effetto su questo. Non sono sicuro del perché. Senza di esso il suggerimento non si mostra per me. –

+4

Penso che sia troppo tardi qui, ma oggi ho visto questa risposta e ho tenuto conto del fatto che qui non c'è bisogno di Android: ellipsize = "start" per creare un centro di suggerimento, AFAIK. Vedi la mia risposta. Può essere anche utile. –

+1

Come indicato in altre risposte, è Android: gravità = "centro" (o una variante simile) che centra il testo, non ellisse. – hBrent

25

Utilizzare questo attributo XML:

android: gravità = "center"

+1

sì questo è necessario per centrare il testo. verticalmente e orizzontalmente. –

+0

funziona con l'edittext all'interno di Constraintslayout –

28

realtà android:gravity="center_horizontal" fa effetto "center". È possibile utilizzare

Android: la gravità = "start"

per mettere il testo accenno all'inizio della vista EditText e così via.

+2

Grazie. Ho provato con 'android: ellipsize =" start "' e non ci sono stati cambiamenti. L'aggiunta di 'android: gravity =" center_horizontal "' ha fatto il trucco. Grazie ancora. –

+0

funziona per me grazie – HCarrasko

8

attributo uso

android:gravity="center" 
7

Ho usato questo codice in ogni circostanza, e funziona perfettamente senza usare android: ellipsize = "start" a fare un suggerimento nel centro.

<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" /> 
3

Purtroppo, né la risposta mi ha aiutato allineando suggerimento, scritto in linguaggio LTR, mentre l'orientamento disposizione era RTL. Avevo bisogno di tale layout in una specie di applicazione di traduzione per fare in modo che le icone di sovrapposizione non interferissero con il testo RTL. Ma questo trucco non ha funzionato con sentori mentre non vi era ancora alcun testo qualsiasi (icone apparve sopra il suggerimento) e sono arrivato alla seguente soluzione Java per il layout problema:

@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); 
     } 
. . . 
} 

Il trucco era di destra a segno di sinistra per anteporre una stringa da sinistra a destra. E sembra funzionare, ma qualcuno conosce una soluzione più elegante?

2

Penso che la risposta dovrebbe essere:

android:textAlignment="center" 
+0

Sono d'accordo, questa è la risposta corretta per centrare solo il testo e non il suggerimento. La gravità di – 0101100101

+0

talvolta non riesce. questo funziona, grazie – j2emanue

2

TextAlignment ha lavorato per me.

textAlignment="center" 
0

questo ha funzionato per me:

<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> 
0

uso android:textAlignment="center" in EditText, il lavoro per me

Problemi correlati