Tôi có chế độ xem văn bản chứa một phần của văn bản. Khi người dùng nhấp vào mũi tên, chế độ xem văn bản sẽ thay đổi kích thước để văn bản đầy đủ được hiển thị. Xem những hình ảnh dưới đây cho một ví dụ: Animate MaxLines and Ellipsize
Các TextView có chiều cao wrap_content, và khi sụp đổ một Maxlines = "4".
Các onClick của mũi tên chứa mã này:
if (isExpanded) {
btnToggle.setImageDrawable(getResources().getDrawable(
R.drawable.arrow_down));
tvText.setMaxLines(4);
tvText.setEllipsize(TruncateAt.END);
} else {
btnToggle.setImageDrawable(getResources().getDrawable(
R.drawable.arrow_up));
tvText.setMaxLines(Integer.MAX_VALUE);
tvText.setEllipsize(null);
}
isExpanded = !isExpanded;
Mã này hoạt động, nhưng nó không phải là hoạt hình. Tôi cần tạo hiệu ứng cho việc mở rộng, do đó, hoạt ảnh của TextView có chiều cao đầy đủ. Tôi không thể tìm thấy bất kỳ điều gì về các thuộc tính hoạt ảnh như MaxLines. Ai có thể giúp tôi?
Dường như hoạt động! Chỉ có 25 tác phẩm, Integer.MAX_VALUE không hoạt động. Nhưng tôi sẽ chỉ đặt giá trị đó lên 1000, sẽ không vượt quá mức đó :) Đáng giá tiền thưởng! – harmjanr
@harmjanr Integer.MAX_VALUE hoạt động, nhưng bạn không chú ý đến hoạt ảnh vì nó xuất phát từ maxLines = 4 (hoặc bất kỳ số dòng mong muốn tối thiểu nào của bạn) thành maxLines = 2147483647 trong khoảng 4000ms. Một giải pháp lý tưởng là biết các dòng văn bản đầy đủ của bạn sẽ sử dụng trước khi hiển thị (http://stackoverflow.com/questions/15679147/how-to-get-line-count-of-textview-before-rendering) – Sanders
Điều này chắc chắn hữu ích như vậy, cảm ơn bạn! Tuy nhiên, bất kỳ đề xuất nào nếu hoạt ảnh kết quả của chúng tôi bị thay đổi? Bố cục của tôi rất tốt có thể hơi nặng vì vậy tôi sẽ cố gắng cắt nó xuống nhưng khác hơn thế, bất kỳ suy nghĩ nào? –