Tôi có một số TextView
với chiều cao tối đa không xác định, phụ thuộc vào độ phân giải DPI/màn hình của thiết bị. Vì vậy, ví dụ, trên và thiết bị MDPI chiều cao tối đa này làm cho nó có thể hiển thị chỉ có 2 dòng tại một thời điểm, một giá trị có thể được tăng lên đến một số không xác định.Phép tối ưu hóa không hoạt động bình thường đối với một TextView đa dòng với chiều cao tối đa tùy ý
Sự cố của tôi liên quan đến chức năng bỏ qua. Giả sử rằng một thiết bị nhất định cho phép hiển thị 4 dòng. Nếu tôi đặt số lượng dòng tối đa theo cách thủ công, như thế này ...
<TextView
android:id="@+id/some_id"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:ellipsize="end"
android:maxLines="4"
android:singleLine="false"
android:layout_weight="1"
android:gravity="center_vertical"
android:text="This is some really really really really really long text"
android:textSize="15sp" />
... mọi thứ hoạt động OK. Nếu văn bản không phù hợp đúng cách, sau đó ellipsis được thêm vào cuối dòng thứ tư, như thế này:
This is some
really really
really really
really long...
Nhưng tôi thà không thiết lập số dòng như là một biến tĩnh, vì tôi muốn bao gồm hỗ trợ cho bất kỳ sự kết hợp nào của độ phân giải DPI/màn hình. Vì vậy, nếu tôi có thể ngưng maxLines
ellipsis được hiển thị không còn chính xác ở dòng bốn, cho thấy thay vì một phần chưa đầy đủ của văn bản:
This is some
really really
really really
really long
Nếu tôi hơi tăng kích thước TextView
, tôi có thể thấy rằng phần còn lại của văn bản vẫn là được rút ra "đằng sau" khác Views
. Đặt biến số maxHeight
dường như không hoạt động.
Tôi thực sự không thể tìm ra giải pháp cho vấn đề này. Ý tưởng nào? Nếu nó giúp, tôi chỉ làm việc với Android v4.0.3 trở lên (API cấp 15).
Hoạt động hoàn hảo. Cảm ơn nhiều! – DPR
Godlike! Lưu ngày của tôi! – Roman
Lưu ý: chiều cao của dòng có thể thay đổi! Và phương thức getLineHeight sẽ không hoạt động như mong đợi. Điều này có thể xảy ra, ví dụ khi sử dụng spannables để làm cho kích thước phông chữ lớn hơn trong một phần cụ thể của văn bản. –