Chcę mieć 5 linii na wysokość pola tekstowego. Korzystam z następującego kodu.
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:singleLine="false"
android:lines="5"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip" />
Obszar tekstowy wygląda dobrze, ale problem polega na tym, że kursor miga na środku pola tekstowego. Chcę, aby migało w pierwszej linii, przy pierwszym znaku w polu tekstowym.
Odpowiedzi:
Posługiwać się
android:gravity="top"
źródło
Jest to podobne do CommonsWare odpowiedź, ale z niewielkim uszczypnąć:
android:gravity="top|start"
. Kompletny przykład kodu:źródło
top|left
chyba że wiesz, że możesz kontrolować wszystkie języki w swojej aplikacji, istnieje wiele języków od prawej do lewej ( en.wikipedia.org/wiki/Right-to-left ). Zachowaj łatwość lokalizacjitop|start
byłaby właściwa alternatywa?Możesz użyć tego tekstu edycji .... Pomoże ci to.
źródło
Użyj tego:
lub
źródło
to będzie działać
źródło
Teraz
start
najlepszym wyborem jest grawitacja :W przypadku EditText (textarea):
źródło
start
działał jakleft
(w przypadku języków zachodnich) - tj. Wpłynie tylko na poziomą grawitację, ale wydaje się, że również spełnia swoje zadanietop
.top
to, o co już prosiłeś. Ogólnie rzecz biorąc, zaczynamy pisać od lewej strony u góry, dlategoSTART
też wykazują one te same cechy. @ ban-Myślę, że możesz użyć
layout:weight = 5
zamiast tego,android:lines = 5
ponieważ po przeniesieniu aplikacji na mniejsze urządzenie - robi to ładnie ... oba atrybuty spełnią twoje zadanie ...źródło