Разделение TextView на несколько TextView относительно высоты экрана

Итак, у меня есть то, что я считаю довольно сложной проблемой. У меня есть этот массивный TextView длиной в несколько экранов. Что я хочу сделать, так это разделить TextView на более мелкие TextView, каждый из которых соответствует высоте видимого экрана (поэтому нет вертикальной прокрутки), и поместить меньшие TextView в галерею с горизонтальной прокруткой. Я могу сделать последнее без проблем, но я не могу придумать хороший способ разбить TextViews.

Также стоит отметить, что TextView содержит много разных стилей текста (разные размеры, интервалы и т. д.).

Я не обязательно ищу решения, но предложения будут полезны и оценены.


person Jason Robinson    schedule 07.06.2011    source источник
comment
вы нашли решение этого?   -  person Khalid ElSayed    schedule 28.08.2014
comment
@KhalidElSayed Без участия TextView. Я не помню, что я в итоге использовал, так как это было 3 года назад.   -  person Jason Robinson    schedule 28.08.2014


Ответы (1)


Вам следует взглянуть на AndroViews или android-viewflow. Они обеспечивают горизонтальное разбиение по страницам, о котором вы говорите, при этом android-viewflow поддерживается адаптером.

Что касается разделения TextView, вы можете создать подкласс onMeasure() и начать определять размеры там. Вы также можете посмотреть, как это делает FBReader, поскольку он в значительной степени делает именно то, о чем вы говорите. о.

person Steve Pomeroy    schedule 07.06.2011
comment
На самом деле, AndroViews может не совсем подходить. Он не может поддерживаться адаптером, поэтому вам придется создавать и заполнять все представления самостоятельно. - person Steve Pomeroy; 08.06.2011
comment
Я ценю ответ, но похоже, что библиотеки, которые вы связали, просто создают представление с горизонтальной прокруткой, но не обрабатывают, когда размер одного элемента превышает длину экрана, что мне и нужно. В основном мне нужно передать только один вид, и адаптер разделит его на горизонтальные виды. - person Jason Robinson; 08.06.2011
comment
Конечно. Часть того, что я предлагаю здесь, заключается в том, что вы создаете собственный TextView и собственный адаптер, которые работают вместе, чтобы разделить ваш контент так, как вы этого хотите. Вы можете переопределить onMeasure() для измерения высоты текста, используя различные методы измерения текста Paint. Когда он превышает вашу границу, попросите его связаться с вашим адаптером, чтобы добавить еще одну виртуальную страницу. Вероятно, вам просто нужно отобразить ± 1 страницу, чтобы справиться с изменением размера для перелистывания страниц. - person Steve Pomeroy; 08.06.2011