Ответ 1
Я также столкнулся с этой проблемой на Android 4.2.2. Мне удалось обойти это, используя ViewTreeObserver API для установки обратного вызова для события onGlobalLayout и запуска отложенного запуска оттуда:
ViewTreeObserver observer = _someView.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener()
@Override
public void onGlobalLayout() {
_somView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
_textView.postDelayed(new Runnable() {
public void run() {
// Code that uses ellipsis detection here
}
}, 10);
});
Это, по общему признанию, несколько хакерское, но это единственный способ, которым я мог правильно определить эллипсис, иначе он просто сообщал, что эллипсификация не происходит. В моем тестировании задержка необходима для этого, но все это выполняется достаточно быстро, так что элементы могут быть скрыты/показаны на основе этой информации без мерцания ui.