Ellipsize có nghĩa là gì trong Android?


199

Tôi đã thêm một EditTextbố cục của mình, và thêm một gợi ý, và đặt nó ở giữa theo chiều ngang.

Khi chạy ứng dụng, gợi ý là vô hình. Tôi thấy rằng tôi nên làm cho ellipsizegiá trị của TextViewstart:

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

Trong tài liệu Android, tôi đọc:

Nếu được đặt, sẽ khiến các từ dài hơn chế độ xem rộng
elip hóa thay vì bị hỏng ở giữa.

Vấn đề là ellipsizekhông tìm thấy trong từ điển. Bất cứ ai có thể giải thích cho tôi những lợi ích chúng ta có thể đạt được theo ellipsizethuộc tính? Và sự khác biệt giữa là những gì start, end, middle?


vui lòng tham khảo câu trả lời cập nhật của tôi.
Rinkal Bhanderi

2
btw: từ thực tế "ellipsized" được tạo thành. Nó được gọi là "xác minh danh từ" và là một cách phổ biến để hình thành biệt ngữ máy tính. Danh từ này là "ellipse" mà tôi giả sử bạn biết, và nó được tạo thành một động từ bằng cách thêm phần kết thúc "-ize" có nghĩa là "tạo thành", vì vậy bạn có thể suy ra rằng "ellipsize" là "để thêm một hình elip vào một cái gì đó ".
Michael Edenfield

4
Lỗi chính tả cũ, không bao giờ sửa. Thuật ngữ thực sự nên là "dấu chấm lửng". Hình elip là một đường cong trên một mặt phẳng bao quanh hai tiêu điểm sao cho một đường thẳng được vẽ từ một trong các tiêu điểm đến bất kỳ điểm nào trên đường cong. Dấu chấm lửng là ba dấu chấm.
radley

Tài liệu của ellipseSize vẫn còn thiếu mô tả.
Talha

vẫn cắt giảm một nửa cho tôi. tôi cần từ ngữ để ở trong một mảnh. chết tiệt
filthy_wizard

Câu trả lời:


388

Bạn có thể tìm tài liệu ở đây .

Dựa trên yêu cầu của bạn, bạn có thể thử theo tùy chọn.

để ellipsize , một neologism, có nghĩa là rút ngắn văn bản bằng cách sử dụng dấu chấm lửng , tức là ba dấu chấm ...hoặc phổ biến hơn là chữ viết tắt , để thay thế cho các bit bị bỏ qua.

Nói chế độ xem văn bản pf giá trị ban đầu là aaabbbccc và phù hợp với chế độ xem bên trong chế độ xem

startĐầu ra của sẽ là: ... bccc

endĐầu ra của sẽ là: aaab ...

middleĐầu ra của sẽ là: aa ... cc

marqueeĐầu ra của sẽ là: aaabbbccc tự động trượt từ phải sang trái


Cảm ơn. Nhưng tôi đã đọc nó. Nó sử dụng từ "elipized" trong đó tôi đang tìm kiếm về ý nghĩa của nó. Từ này không thể được sử dụng trong định nghĩa của nó !! Bất kỳ giải thích thêm xin vui lòng?
Hamzeh Soboh

60

theo kinh nghiệm của tôi, Ellipsis chỉ hoạt động nếu dưới hai thuộc tính được đặt.

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

đối với chiều rộng của textview, quấn_content hoặc match_parent đều tốt.


2
Trên thực tế android:singleLineđã bị phản đối kể từ API cấp 3, vì vậy thay vào đó hãy sử dụng android:maxLines. Xin lưu ý:> nếu cả hai SingleLine và inputType được cung cấp, các cờ inputType sẽ ghi đè lên giá trị của singleLine. Kiểm tra các tài liệu tại R.attr.html # singleLine
Filipe Bezerra de Sousa

1
@AlbertoGaona Tôi đã nhận thấy rằng nó không hoạt động nếu android: ellipsize = "start" và android: maxLines = "2" (hoặc hơn). Tôi đã không nhìn thấy bất kỳ dấu chấm nào khi bắt đầu mặc dù văn bản quá dài.
ka3ak

17

How to Add an ellipsis in a TextView

android: ellipsize được thêm vào trong API Cấp 1. Một dấu chấm lửng là ba giai đoạn liên tiếp. (...).

Trong Xml của bạn

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

Tại thời điểm này, dấu chấm lửng sẽ không hiển thị vì TextView được đặt thành tự động mở rộng theo mặc định khi văn bản mới được nhập. Bạn sẽ cần phải giới hạn TextView theo một cách nào đó. Làm điều này, bạn có thể sử dụng thêm vàoTextView a scrollHorizontally, minLines, or maxLines để có màn hình dấu chấm lửng.

Để tạo hình elip:

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

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

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

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

Xin lưu ý:

 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 (...)

Để biết thêm chi tiết bạn có thể truy cập tại đây

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


10

Dấu chấm lửng là ba giai đoạn liên tiếp ...

TextView sẽ sử dụng dấu chấm lửng khi không thể mở rộng để hiển thị tất cả văn bản của nó. Thuộc tính ellipsizedđặt vị trí của ba dấu chấm nếu cần thiết.


5

Bản văn:

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

Giả sử trên là văn bản của bạn và nếu bạn đang sử dụng ellipsize's startthuộc tính nó sẽ thấy như thế này

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

với endthuộc tính

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

3

đây là một ví dụ về cách ellipsize hoạt động mà không sử dụng không dùng android:singleLine="true"trong ConstraintLayout:

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

hãy nhớ nếu bạn có một văn bản được cho là nằm trong một dòng, sau đó thay đổi maxLines thành 1.


Cảm ơn bạn giải pháp này đã khắc phục vấn đề của tôi. Chìa khóa là android:layout_width="0dp"thay vì android:layout_width="wrap_content". Lưu ý điều này có thể áp dụng vì tôi đang sử dụng a ConstraintLayout. Cũng thảo luận ở đây stackoverflow.com/a/48149405/2848676
Michael Osofsky

1

Lưu ý: văn bản của bạn phải lớn hơn hộp chứa cho các mục sau đây để marquee:

 android:ellipsize="marquee"    

1

Đặt thuộc tính này để chỉnh sửa văn bản. Elipsize đang hoạt động với việc vô hiệu hóa văn bản chỉnh sửa

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

hoặc setKeyListener (null);


thiết lập ở trên đã đề cập đến tất cả các thuộc tính và setKeyListener (null) ngoại trừ thuộc tính có thể chỉnh sửa.
Mubarak

0

Sử dụng dấu chấm lửng khi bạn có chiều rộng cố định, sau đó nó sẽ tự động cắt bớt văn bản và hiển thị dấu chấm lửng ở cuối,

nó sẽ không hoạt động nếu bạn đặt layout_creen là quấn_content & match_parent.

android:width="40dp"
android:ellipsize="end"
android:singleLine="true"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.