Разделение текста на несколько текстовых представлений / фрагментов с помощью ViewPager - PullRequest
7 голосов
/ 01 декабря 2011

Я пытаюсь разделить текст на несколько фрагментов, загруженных в ViewPager с помощью библиотеки совместимости Android. Идея состоит в том, чтобы создать что-то похожее на приложение Kindle, где вы проводите по нескольким страницам текста.

Первоначально моим источником текста является строка, определенная в strings.xml, и я использую алгоритм для определения высоты экрана устройства, а затем делю эту строку соответственно на несколько элементов для ViewPager. Поскольку вы не можете получить высоту TextView заранее, я просто использую процентное значение, чтобы определить, какой максимальный размер TextView установить на каждой странице (это выглядит немного некрасиво).

Кажется ли это разумным подходом, или я все делаю неправильно?

1 Ответ

0 голосов
/ 09 июля 2013

Поскольку вы не можете получить высоту TextView раньше времени

Ну, это зависит от того, что вы подразумеваете под «опережением времени» (время == обработка текста?).

  • Вы можете measure() ваш ViewPager / TextView один раз и использовать его getMeasuredHeight()/getMeasuredWidth() в своих вычислениях
  • Вы можете подождать ViewTreeObserver.OnGlobalLayoutListener.onGlobalLayout() и использовать "стандартные" измерения макета для того же самого
  • (Не рекомендуется) вы можете использовать («высота экрана» - «высота декораций») / «высота текста (шрифт + интервал)», чтобы узнать, сколько строк текста поместится в вашем TextView
  • Etc. и т.д.
...