2012-07-03 9 views

Odpowiedz

65

Aby wycentrować tekst podpowiedzi do pracy z EditText, musisz upewnić się, że android: ellipsize = "start" jest zdefiniowany. Nie wiem, dlaczego to działa, ale tak.

Przykład wyciągnięty z kodem osobistego:

<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

Dzięki za publikację i witamy w StackOverflow! Tak, ellipsize = "start" wpływa na to. Nie wiem, dlaczego. Bez tego podpowiedź mi nie pokazuje. –

+4

Myślę, że jestem już za późno, ale dzisiaj widziałem tę odpowiedź i reliabed, że tutaj nie ma potrzeby android: ellipsize = "start", aby zrobić centrum podpowiedzi, AFAIK. Zobacz moją odpowiedź. Może być to również przydatne. –

+1

Jak stwierdzono w innych odpowiedziach, jest to Android: gravity = "center" (lub podobny wariant), który centruje tekst, a nie elipsę. – hBrent

25

tego atrybutu XML:

ANDROID ciężkości = "środek"

+1

tak, konieczne jest wyśrodkowanie tekstu. zarówno w pionie, jak i w poziomie. –

+0

działa z edittext wewnątrz Constraintslayout –

28

Faktycznie android:gravity="center_horizontal" ma "środkową" efektu. Można użyć

androida: grawitacja = „start”

umieścić tekst podpowiedzi na początku widoku EditText i tak dalej.

+2

Dzięki. Próbowałem z 'android: ellipsize =" start "' i nie było żadnej zmiany. Dodanie 'android: gravity =" center_horizontal "' zrobiło lewę. Dzięki jeszcze raz. –

+0

działa dla mnie dzięki – HCarrasko

8

atrybut użycie

android:gravity="center" 
7

Kiedyś ten kod w każdych okolicznościach i działa doskonale bez użycia android: ellipsize = „start” aby podpowiedź w centrum.

<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

Niestety, żadna odpowiedź pomogła mi wyrównując wskazówkę, napisany w języku LTR, natomiast orientacja układ był RTL. Potrzebowałem takiego układu w rodzaju aplikacji do tłumaczenia, aby ikony nakładek nie kolidowały z tekstem RTL. Ale ta sztuczka nie działa z podpowiedzi podczas gdy nie było jeszcze żadnego dowolny tekst (ikony pojawiły się nad nutą) i doszedłem do następującego roztworu Java układ problemu:

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

Sztuką było w prawym-to- lewy znaczek, aby wstawić ciąg od lewej do prawej. I wydaje się, że działa, ale czy ktoś zna bardziej eleganckie rozwiązanie?

2

Myślę, że odpowiedź powinna być:

android:textAlignment="center" 
+0

Zgadzam się, to jest poprawna odpowiedź, aby wyśrodkować tylko tekst, a nie podpowiedź. – 0101100101

+0

grawitacja czasami kończy się niepowodzeniem. to działa, dziękuję – j2emanue

0

Ten pracował dla mnie:

<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

korzystanie android:textAlignment="center" w EditText, to praca dla mnie

Powiązane problemy