2011-11-10 33 views
24

Tôi đang lập trình tạo một TextView mà tôi muốn dấu ba chấm ở cuối.Lập trình tạo TextView với dấu chấm lửng

mã giả:

tv.setEllipsize(TextUtils.TruncateAt.END); 
    tv.setHorizontallyScrolling(false); 
    tv.setSingleLine(); 

Các công trình trên Great.

tv.setEllipsize(TextUtils.TruncateAt.END); 
    tv.setHorizontallyScrolling(false); 
    tv.setMaxLines(1); 

Điều này không có tác dụng. Đây có phải là một lỗi? Tôi không hiểu tại sao tôi không thể nhận được văn bản để elip ở cuối khi xác định maxLines đặc biệt là một maxLine của 1 nhưng setSingleLine là ok.

Trả lời

45

setSingleLine() hoặc setSingleLine(true) ngăn TextView thay đổi chiều cao thành nhiều dòng hơn và buộc TextView bỏ qua ngắt dòng (biểu tượng \n trong chuỗi).

setMaxLines(int n) hiển thị n dòng đầu tiên của Chuỗi được hiển thị trong TextView được phân cách bằng dấu ngắt dòng.

Ví dụ chúng ta hãy String là "đầu tiên của tôi dòng \ n và thứ hai dòng \ n tôi và một phần ba"

  • setSingleLine() cho phép màn hình hiển thị TextView "dòng đầu tiên của tôi và tôi .." vì màn hình chiều rộng vượt quá và
  • setMaxLines(1) kết quả trong "dòng đầu tiên của tôi"
  • setMaxLines(2) kết quả trong "dòng đầu tiên của tôi" và bên dưới một dòng nói "và dòng thứ hai của tôi"
  • setMaxLines(3) rõ ràng là không có bất kỳ ảnh hưởng đến mẫu này str ing.

Cập nhật: Điều này sẽ làm việc cho "setDoubleLine với cắt ngắn":

// optional: string.replace("\n",""); or string.replace("\n"," "); 
tv.setSingleLine(false); 
tv.setEllipsize(TextUtils.TruncateAt.END); 
int n = 2; // the exact number of lines you want to display 
tv.setLines(n); 
+1

ảnh vui nhộn. Có thể có một TextView mà là hai dòng và vẫn còn hình elip ở cuối? tức là, setDoubleLine() vv? Đây là cách tôi tưởng tượng maxLine làm việc. Đối với những gì nó có giá trị chiều cao và chiều rộng của tôi được đặt thành giá trị nhúng, không phải là match_parent. – sgarman

+0

@AndreyButov cảm ơn vì đã đề xuất chỉnh sửa, tôi đã chấp nhận nếu không ngủ. Tôi đã sửa bài đăng ngay bây giờ theo đề xuất của bạn. Cảm ơn một lần nữa. – stefan

Các vấn đề liên quan