Elipsize nie działa poprawnie dla wielowierszowego TextView z dowolną maksymalną wysokością

mamTextView z nieznaną maksymalną wysokością, która zależy od rozdzielczości DPI / ekranu urządzenia. Tak więc na przykład na urządzeniu i MDPI ta maksymalna wysokość umożliwia wyświetlanie tylko 2 linii na raz, wartość, którą można zwiększyć do nieokreślonej liczby.

Mój problem związany jest z funkcjonalnością elipsy. Załóżmy, że pewne urządzenie umożliwia wyświetlenie 4 linii. Jeśli ręcznie ustawię maksymalną liczbę linii, jak ta ...

<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" />

... wszystko działa OK. Jeśli tekst nie pasuje prawidłowo, to elipsy są dodawane na końcu czwartej linii, tak jak poniżej:

This is some
really really
really really
really long...

Ale wolałbymnie ustaw liczbę linii jako zmienną statyczną, ponieważ wolałbym włączyć obsługę dowolnej kombinacji rozdzielczości DPI / ekranu. Więc jeśli usunęmaxLines elipsa nie jest już poprawnie wyświetlana w czwartej linii, pokazując zamiast tego niekompletną część tekstu:

This is some
really really
really really
really long

Jeśli nieznacznie zwiększęTextView rozmiar, widzę, że reszta tekstu jest nadal rysowana „za” drugimViews. Ustawianie zmiennejmaxHeight też nie działa.

Naprawdę nie mogę znaleźć rozwiązania tego problemu. Jakieś pomysły? Jeśli to pomoże, pracuję tylko z Androidem v4.0.3 i nowszym (poziom API 15).

questionAnswers(1)

yourAnswerToTheQuestion