2012-04-15 4 views
5

Tôi có vấn đề này:TextView bọc văn bản sau khi thay đổi kiểu chữ

enter image description here enter image description here

Vâng, những lời trong bài viết này ClickableSpans rằng thay đổi màu sắc và kiểu chữ trên nhấp chuột. Do BOLD rộng hơn một chút nên một số văn bản ở cuối dòng sẽ di chuyển ra khỏi màn hình. Mặc dù người ta có thể di chuyển nó sang một bên, tôi vẫn muốn các từ cắt hoặc ẩn sẽ chuyển sang dòng tiếp theo.

Điều này có khả thi không? Tôi đã thử invalidate(), đặt lại chiều rộng của chế độ xem văn bản một lần nữa, nhưng không có gì giúp tôi.

Cảm ơn bạn!

Trả lời

0

Có thể có một vài bài tập cho vấn đề của bạn.

Hãy thử bất kỳ một trong những thuộc tính trên TextView của bạn:

  • android:layout_weight=1
  • android:width="0dip"
  • android:ellipsize="none"
  • android:scrollHorizontally="false"

Đối xem di chuyển của bạn, bạn có thể thử:

<ScrollView android:id="@+id/SCROLL_VIEW" 
android:layout_height="fill_parent" 
android:layout_width="fill_parent"> 

<TextView 
    android:id="@+id/TEXT_VIEW" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:text="Here goes your text" /> 
</ScrollView> 

Bây giờ trong các tham số TextView, hãy thử và thêm một trong các thuộc tính được đề cập ở trên. Vì bạn cần gói sau khi thay đổi kiểu chữ, tôi không chắc chắn thuộc tính nào sẽ phù hợp với nhu cầu của bạn.

+0

Chế độ xem văn bản được bao quanh bởi chế độ xem cuộn, vì vậy tôi nên thiết lập chế độ xem cuộn như thế nào? Cảm ơn – myro

0

Văn bản phản chiếu khi nhấp vào liên kết không phải là ý tưởng hay từ quan điểm trải nghiệm người dùng. Vì vậy, bạn nên xem xét việc thay đổi màu sắc và không phải là kiểu chữ của văn bản.

Nếu bạn vẫn muốn tiếp tục với điều này, bạn có thể gọi requestLayout() theo sau là invalidate() trên chế độ xem văn bản.

+0

không hoạt động, nhưng bạn nói đúng, đó là ý tưởng thiết kế tồi. Giảm kích thước từ đậm có thể sẽ không làm tổn thương nhiều, hoặc không sử dụng in đậm ở tất cả ... – myro

+0

xem nếu gọi requestLayout và invalidate sẽ giúp. Đó là những gì họ làm trong mã nguồn của TextView. – Ronnie

0

Nếu bạn đang sử dụng TextView bên trong Layout, cứng mã layout_width với dip trong Layout thẻ và sử dụng thẻ layout_weight=1 để TextView của bạn.

Lưu ý: Quy trình trên chỉ có thể được triển khai nếu ứng dụng của bạn có thể được sử dụng trong Chế độ dọc.

0

Một điều nữa bạn có thể thử là gọi textView.requestLayout()