Android: Çok satırlı EditText için dikey hizalama (Metin alanı)


232

Metin alanının yüksekliği için 5 satır olmasını istiyorum. Aşağıdaki kodu kullanıyorum.

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

Metin alanı iyi görünüyor, ancak sorun imlecin metin alanının ortasında yanıp sönmesi. İlk satırda, metin alanının ilk karakterinde yanıp sönmesini istiyorum.


15
yerçekimi "merkez" kaldırmaya çalışın, sorun olabilir
Sephy

Yanıtlar:



99

Bu CommonsWare cevaba ancak küçük bir çimdik benzer: android:gravity="top|start". Tam kod örneği:

<EditText
    android:id="@+id/EditText02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:lines="5"
    android:gravity="top|start"
    android:inputType="textMultiLine"
    android:scrollHorizontally="false" 
/>

8
top|leftUygulamanızdaki tüm dilleri kontrol edebileceğinizi bilmiyorsanız kullanmayın , orada sağdan sola birçok dil var ( en.wikipedia.org/wiki/Right-to-left ) Yerelleştirme dostu tutun
MariusBudin

1
@MariusBudin Muhtemelen, top|startdoğru alternatif olur mu?
ban-geoengineering

19

Bu Edittext'i kullanabilirsiniz .... Bu size yardımcı olacaktır.

<EditText
android:id="@+id/EditText02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:lines="5"
android:gravity="top|left"
android:inputType="textMultiLine" />


6
<EditText android:id="@+id/EditText02" android:layout_width="120dp"
    android:layout_height="wrap_content" android:lines="5" android:layout_centerInParent="true"
    android:gravity="top|left" android:inputType="textMultiLine"
    android:scrollHorizontally="false" android:minWidth="10.0dip"
    android:maxWidth="180dip" />

Çalışacak


3

Şimdi bir gün yerçekimi startkullanımı en iyi seçimdir:

android:gravity="start"

EditText (textarea) için:

<EditText
    android:id="@+id/EditText02"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:lines="5"
    android:gravity="start"
    android:inputType="textMultiLine"
/>

Bunun neden işe yaradığına ışık tutabilir misin? Ben umuyordum startgibi çalışmış olmak left(Batı dilleri için) -, sadece yatay yerçekimi etkiler yani, ama aynı zamanda bir iş yapmak gibi görünüyor topde.
ban-geoengineering

Evet haklısın. Bunu esas olarak RTL desteği için kullanıyoruz. Arapça dilinde olduğu gibi, Sol yerine Sağa gider. Ve topzaten sorduğunuza da gider . Genelde Üst Sol taraftan yazmaya başlıyoruz, bu yüzden bu STARTda aynı özellikleri gösteriyor. @ ban-geoengineering
Hasib Akter

2

Bunun layout:weight = 5yerine kullanabileceğinizi düşünüyorum android:lines = 5çünkü uygulamanızı daha küçük bir cihaza taşıdığınızda - güzel yapıyor .. iyi, her iki özellik de işinizi başaracak ..

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.