Elipsize android'de ne anlama geliyor?


200

Düzenime bir ekledim EditTextve bir ipucu ekledim ve yatay olarak ortaladım.

Uygulamayı çalıştırırken ipucu görünmezdi. Ben yapmalıdır bulundu ellipsizedeğerini TextViewolmak start:

<EditText
    android:id="@+id/number1EditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="start"
    android:ems="10"
    android:gravity="center_horizontal"
    android:hint="@string/hint1" />

Android belgelerinde şunu okudum:

Ayarlanmışsa, görünümden daha uzun olan kelimelerin
ortada kırılmak yerine elips boyutuna neden olur .

Sorun ellipsizesözlükte bulunmamasıdır. Herhangi biri bana ellipsizeözelliğe göre hangi faydaları sağlayabileceğimizi açıklayabilir mi? Ve arasındaki fark nedir start, end, middle?


lütfen güncellenmiş cevabımı belirtin.
Rinkal Bhanderi

2
btw: asıl "elipsized" sözcüğü oluşturulur. Buna "isim verme" denir ve bilgisayar jargonu oluşturmanın yaygın bir yoludur. İsim "elips" dir, bildiğinizi varsayıyorum ve "-ize" sonunu ekleyerek "içine yapmak" anlamına gelen bir fiil haline getirilmiştir, böylece elips eklemek için "elips" şey".
Michael Edenfield

4
Eski yazım hatası, asla düzeltilmedi. Terim aslında "üç nokta" olmalıdır. Elips, odak noktalarından birinden eğri üzerindeki herhangi bir noktaya çizilen düz bir çizgi olacak şekilde iki odak noktasını çevreleyen bir düzlemdeki bir eğridir. Üç nokta üç nokta.
radley

EllipseSize belgelerinde hala eksik açıklama var.
Talha

hala kelimelerimi ikiye böldüm. tek parça halinde kalması için kelimelere ihtiyacım var. lanet olsun
filthy_wizard

Yanıtlar:


389

Belgeleri burada bulabilirsiniz .

İhtiyacınıza göre seçeneğe göre deneyebilirsiniz.

için ellipsize , bir terimdir, bir ile kısaltması metne vasıtasıyla üç nokta , yani üç nokta ...veya daha çok bağ , ihmal bitler için durmak.

Metin görüntüsünün orijinal değeri diyelim aaabbbccc ve görünüm içinde

startadlı kişinin çıktısı: ... bccc

endçıktısı: aaab ...

middleçıktısı: aa ... cc

marqueeçıktısı: aaabbbccc otomatik sağdan sola kayar


Teşekkürler. Ama bunu zaten okudum. Anlamını araştırdığım yerde "elips" kelimesini kullanır. Kelime tanımında kullanılamaz !! Başka bir açıklama lütfen?
Hamzeh Soboh

62

deneyimlerime göre, üç nokta yalnızca iki öznitelik ayarlanmışsa çalışır.

android:ellipsize="end"
android:singleLine="true"

metin görünümünün genişliği için, wrap_content veya match_parent her ikisi de iyi olmalıdır.


2
Aslında android:singleLineAPI seviye 3'ten beri kullanımdan kaldırıldı, bunun yerine kullanın android:maxLines. Lütfen dikkat:> hem singleLine hem de inputType verilirse, inputType bayrakları singleLine değerini geçersiz kılar. R.attr.html # singleLine
Filipe Bezerra de Sousa

1
@AlbertoGaona android: ellipsize = "start" ve android: maxLines = "2" (veya daha fazla) durumunda işe yaramadığını fark ettim. Metin çok uzun olmasına rağmen başlangıçta hiçbir nokta görmedim.
ka3ak

17

How to Add an ellipsis in a TextView

android: elipsize API Seviye 1'e eklenmiştir. Üç nokta üst üste üç periyottur. (...).

Xml'nizde

 <TextView
       ....
       android:text="Hi I am Amiyo,you can see how to ellipse works."
       android:ellipsize = "end"  
   />

Bu noktada, yeni metin girildiğinde varsayılan olarak TextView otomatik olarak genişleyecek şekilde ayarlandığı için üç nokta henüz görüntülenmez. TextView'u bir şekilde sınırlamanız gerekecektir. Bunu yapın TextView a scrollHorizontally, minLines, or maxLines, üç noktaya eklemek için üç nokta işaretini kullanabilirsiniz.

Elips yapmak için:

    at the end: this is how it would...     
   use: android:ellipsize = "end"

Ve

 in the middle: this is ...how it would
use: android:ellipsize = "middle"

Ve

 at the start: ...this is how it would
use: android:ellipsize = "start"

Ve

 to have no ellipse
use: android:ellipsize = "none"

Not Lütfen:

 Do not use android:singeLine = "true", it is deprecated.
android:maxLines = "1" will not display the three dots (...)
android:lines = "1" will not display the three dots (...)

Daha fazla ayrıntı için burayı ziyaret edebilirsiniz

http://developer.android.com/reference/android/widget/TextView.html#attr_android%3aellipsize


10

Bir üç nokta üst üste üç dönem olduğunu ...

TextView, metninin tamamını göstermek için genişletilemediğinde üç nokta kullanır. Özellik ellipsizedgerekirse üç noktanın konumunu ayarlar.


5

Metin:

 This is my first android application and
 I am trying to make a funny game,
 It seems android is really very easy to play.

Yukarıdaki metniniz olduğunu varsayalım ve ellipsize's startözelliğini kullanıyorsanız, metin şöyle görünecektir

This is my first android application and
...t seems android is really very easy to play.

ile endöznitelik

 This is my first android application and
 I am trying to make a funny game,...

3

Burada, ConstraintLayout'ta kullanımdan kaldırılmadan elips boyutunun nasıl çalıştığıyla ilgili bir örnek verilmiştir android:singleLine="true":

<TextView
   android:layout_width="0dp"
   android:layout_height="wrap_content"
   android:textSize="13sp"
   android:ellipsize="end"
   android:maxLines="2"
   app:layout_constraintEnd_toEndOf="parent"
   app:layout_constraintStart_toStartOf="parent"
   tools:text="long long long long long long text text text" />

tek bir satırda olması gereken bir metniniz varsa unutmayın, sonra maxLines değerini 1 olarak değiştirin .


Teşekkür ederim bu çözüm sorunumu çözdü. Anahtar android:layout_width="0dp"yerine android:layout_width="wrap_content". Bu geçerli bir not çünkü ben kullanıyorum ConstraintLayout. Ayrıca burada tartışıldı stackoverflow.com/a/48149405/2848676
Michael Osofsky

1

Not: aşağıdakilerin seçim çerçevesi için metniniz kap kutusundan daha büyük olmalıdır:

 android:ellipsize="marquee"    

1

Metni düzenlemek için bu özelliği ayarlayın. Elipsize düzenleme metnini devre dışı bırak ile çalışıyor

android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
android:singleLine="true"
android:editable="false"

veya setKeyListener (null);


yukarıda ayarlanmışsa, düzenlenebilir özellik dışında tüm özelliklerden ve setKeyListener'dan (null) bahsedildi.
Mübarek

0

Sabit genişliğe sahip olduğunuzda elips kullanın, daha sonra metni otomatik olarak kesecek ve sonunda üç nokta gösterecektir,

layout_width öğesini wrap_content & match_parent olarak ayarlarsanız çalışmaz.

android:width="40dp"
android:ellipsize="end"
android:singleLine="true"
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.