В настоящее время я разрабатываю Библию на Android, основанную на Paragraph, поэтому ListView не будет работать. Я реализовал ViewPager, используя фрагменты для каждой новой загружаемой главы. У меня проблема в том, что когда я устанавливаю текст TextView (mytextview.settext()), для отображения одной главы требуется более 200 мс. Обратите внимание, что текст, который я загружаю в TextView, представляет собой SpannableString с данными для красных букв, стихов и т. д. Для прокрутки TextView инкапсулируется в ScrollView для плавной прокрутки. Любые идеи о том, как реализовать систему ленивой загрузки в TextView или как ускорить процесс отображения текста? Любые ответы будут оценены!
Загрузка большого количества текста (spannablestring) в текстовое представление Android занимает более 200 мс?
Ответы (1)
Хотя вы сказали, что это не сработает, я бы предложил использовать ListView
с пользовательским Adapter
(или RecyclerView
для последней версии API) вместо одного TextView
. ListView
с пользовательским Adapter
будет более эффективным способом управления тоннами текста, если вы будете следовать шаблону «ViewHolder» в своем Adapter
. Каждый абзац в вашей главе может быть отдельным элементом списка, который будет перерабатываться, когда пользователь прокручивает абзац за пределами экрана. В Интернете есть множество руководств по пользовательским ListView
Adapters
в Android, поэтому я не буду повторять их здесь; тем не менее, я надеюсь, что этот пост может указать вам правильное направление.
Удачи и счастливого кодирования!
person
John P.
schedule
04.02.2015
Не все абзацы являются стихами. Я мог бы попробовать то, что вы предложили выше, так как это явно был бы самый быстрый вариант. Спасибо за ваш вдумчивый ответ!
- person Seth; 04.02.2015
Нет проблем, Сет! Я фактически использовал этот метод в одном из своих приложений. Если вам нужен рабочий пример, посмотрите мой адаптер: github.com/JohnPersano/CrimeTalk-Reader/blob/master/app/src/ И фрагмент, который его использует: github.com/JohnPersano/CrimeTalk -Reader/blob/master/app/src/ Примечание. Мне нужно загрузить информацию с веб-страницы, чтобы получить данные во фрагменте, поэтому большая часть этого кода не будет применяться к вашему проекту.
- person John P.; 05.02.2015