2016-06-25 21 views
5

Robię kalkulator, a dane wprowadzane przez użytkownika są zawarte w EditText. Wprowadzanie odbywa się za pomocą przycisków na ekranie, więc klawiatura Android jest wyłączona. Jednak chcę, aby zapisywał wszystkie dane wejściowe w jednym wierszu, a kiedy linia osiągnie granicę, musi być elipsy, a następnie przewijać poziomo, aby można było dotrzeć do całego tekstu.EditText nie zapisze się w pojedynczej linii

Próbowałem to zrobić, ustawiając android: maxLines = "1" i android: ellipsize = "koniec", ale to nie działa. Tekst nadal znajduje się w wielu liniach, ale widoczna jest tylko jedna linia i trzeba przewijać w pionie, aby zobaczyć inne linie. Próbowałem również używać android: singleLine = "true", ale to czyni EditText kompletnie bezużytecznym.

To EditText XML:

<EditText 
    android:id="@+id/textView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="end" 
    android:background="@color/colorBlue" 
    android:textAlignment="textEnd" 
    android:textSize="40sp" /> 

Odpowiedz

9

myślę, że to będzie pracować dla Ciebie. Daj znać czy działa.

<EditText 
android:id="@+id/textView" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_gravity="end" 
android:background="@color/colorBlue" 
android:textAlignment="textEnd" 
android:textSize="40sp" 
android:inputType="text" 
android:maxLines="1" 
android:lines="1" 
android:scrollHorizontally="true" 
android:ellipsize="end"/> 

Ten post może ci również pomóc.

+5

Ta + android: InputType = "text" pracował dla mnie. Wygląda na to, że inputType ma tu kluczowe znaczenie. Podany link bardzo mi pomógł. Ty – leonz

+0

Np, dziękuję za poinformowanie mnie. Zaktualizuję wtedy odpowiedź. Cieszę się, że pomogło! –

1

Na jednej linii w EditText, wystarczy ustawić dwie właściwości:

android:inputType="text" 
android:maxLines="1" 
Powiązane problemy