2013-08-27 48 views
7

Tôi muốn tránh phá vỡ các dòng trong các phần đặc trưng của Chuỗi.Android: tránh phá vỡ dòng trong phần TextView Chuỗi

Hãy nói rằng chúng ta có chuỗi này:

Speed (m/s) 

Lý tưởng sẽ được một trong hai không nhảy ở tất cả và có đầy đủ các String trong một dòng, hoặc, nếu nhảy là cần thiết, theo cách này:

Speed 
(m/s) 

những gì tôi muốn tránh là điều như thế này:

Speed (m/ 
s) 

Bất kỳ ý tưởng?

+1

http://stackoverflow.com/questions/6134457/how-to-prevent-edittext-from-breaking-a-line-after-punctuation – laalto

Trả lời

0

Hãy thử điều này (chỉ cần một ý tưởng, không kiểm tra):

  1. Tính chiều rộng của TextView với View.getMeasuredWidth().
  2. Tính chiều rộng của String với Paint.measureText().
  3. So sánh độ rộng và thêm "\ n" giữa "Tốc độ" và "(m/s)" nếu được yêu cầu.
+0

Tôi đang tìm kiếm nhiều hơn cho một trường hợp thông thường ... Tôi có thể gặp khó khăn nếu có một số dòng và quy tắc cùng một lúc ... – apascual

8

Cố gắng sử dụng non-breaking space giữa Tốc độ và "(m/s)". Ký tự Unicode no-break space (\u00A0) sẽ hoạt động cho TextView.

+4

Vấn đề ở đây là không có không gian trong "(m/s)", nhưng Android đang tách nó ... – apascual

+1

Kể từ khi "(m/s)" không phải là một từ, android không thể tự động quấn nó. Vấn đề này trông phức tạp hơn so với không gian và các vấn đề bọc từ .. Đây là một câu hỏi tương tự như của bạn, có thể bạn có thể tham khảo câu trả lời được chấp nhận. Họ ghi đè lên 'TextView' với một vài sửa đổi. [Liên kết câu hỏi tương tự] (http://stackoverflow.com/questions/15981941/how-to-control-when-textview-sends-string-to-new-line?rq=1) – YX1990