Android TableLayout - уменьшить еще - PullRequest
0 голосов
/ 24 февраля 2012

Я пытаюсь разместить несколько текстовых элементов в одной строке, и именно один из этих элементов считается «активным».Итак, у меня есть два следующих случая:

  • Общая ширина всех текстовых элементов меньше родительской ширины.Просто покажите все текстовые элементы как есть.
  • Общая ширина превышает родительскую ширину.Показать полный текст «активного» элемента без обрезки, используйте эллипс, чтобы сжать все остальные текстовые элементы.

Предположим, гарантировано, что если есть только один элемент, он всегда умещается.

Список строк является динамическим.Любой элемент может быть установлен «активным» в любой момент.

Пока у меня есть следующее: макет таблицы с одной строкой, все «неактивные» столбцы установлены сжимаемыми, а текстовые элементы установлены с многоточием вконец.«Активным» является setEllipsize (null), и столбец не может быть сжат.

Проблема заключается в том, что все сжатые столбцы сокращаются до некоторого фиксированного процента, но не более.Если этого недостаточно для отображения «активного» текста, вся таблица обрезается до родительской ширины.

Поэтому вопрос в том, не упущен ли какой-либо способ управления количеством столбцов, которые можно сжать.

PS Весь макет генерируется кодом, не используя макет xmls.

1 Ответ

0 голосов
/ 24 февраля 2012

Вместо того, чтобы сжимать свои элементы, вы можете использовать либо веса макета, либо, что еще лучше, вы можете просто установить видимость вида на НЕВИДИМОЕ или УДАЛЕННОЕ. Но если вам все еще нужно отобразить всю строку текста, вы можете просто сохранить все строки одинаковыми. Затем, когда вид активен, вы можете просто наложить другой вид сверху, используя относительный_слой, который является полным текстом. Таким образом, вы будете использовать эффект всплывающего окна.

...