Android – Hiển thị thêm TextView

Tram Ho

Giới thiệu

Trên hình là một trường hợp có thể bạn sẽ hay gặp phải trong lập trình UI android. Đó là một TextView có thể mở rộng và thu nhỏ nội dung, với button “Show more” và “Show less” sẽ follow ngay phía sau nội dung của TextView. Bài toán ở đây là việc tính toán số ký tự của chuỗi sẽ hiển thị trong TextView với max lenght cho phép, Sau đó tính toán độ dài cần thiết để add thêm dấu ba chấm và text “Show more”/”Show less” để add các thành phần này vào chuỗi đá tính toán trước đó

Triển khai

Để thực hiện chức năng này, mình sẽ tạo một custom của TextView
Đầu tiên hãy đọc đoạn code đầy đủ của nó, mình sẽ giải thích chi tiết ở phía dưới sau

Đây là các funtion để init thông tin của ShowMoreTextView

Đầu tiên ở init mình sẽ add một addOnGlobalLayoutListener để lắng nghe sự thay đổi của layout khi TextView được setText để sử lý chuỗi mới

Khi có dự thay đổi về text thì function showMoreButton() sẽ được gọi nếu như showingLine < lineCount(Số line của chuỗi vừa được set)
function showMoreButton() sẽ chịu trách nhiệm tính toán và cắt chuỗi có thể hiển thị với showingLine hiện tại sau đó sẽ add vào dấu ba chấm và một SpannableString “Show more” và cuối cùng là setText ngược lại cho chính TextView này

Khi button “Show more” được clicked thì sẽ gọi function showLessbutton(): function này thì đơn giản hơn, chỉ việc lấy string gốc được set và add thêm Spannable “Show less”

Sử dụng

Sử dụng trong Activity

Hy vọng bài chia sẽ này sẽ hữu ích với các bạn, cảm ơn đã theo dõi

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo