Проверьте, является ли текстовое представление эллиптическим без ViewTreeObserver
Мне нужно реализовать RelativeLayout
с TextView
что по умолчанию имеет два якоря layout_alignParentLeft
а также layout_alignParentRight
(поэтому он растягивается через контейнер). Мне нужно, чтобы макет определял, является ли textView эллиптическим, а если нет, удаляет layout_alignParentLeft
, так что вид будет выровнен по правой стороне контейнера.
Я нашел решение, которое использует ViewTreeObserver
и это вроде работает, но проблема в том, что textView отрисовывается до того, как я могу удалить якорь и правильно перерисовать его, поэтому пользователи сначала видят растянутую версию, а затем она перерисовывается рядом с правой стороной родителя.
Мой код выглядит так:
onGlobalLayoutListener = ViewTreeObserver.OnGlobalLayoutListener {
if (recalculateFiltersWidth) {
val layout = mSelectedFilters.layout
val lines = layout.lineCount
if (lines > 0 && layout.getEllipsisCount(lines - 1) == 0) {
//Change the anchor
}
recalculateFiltersWidth = false
viewTreeObserver.removeOnGlobalLayoutListener(onGlobalLayoutListener)
}
}
Я хочу избежать рисования до того, как я смогу удалить якорь (если мне нужно это сделать). Как я могу это сделать?