Читалка .NET MAUI как книгаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Читалка .NET MAUI как книга

Сообщение Anonymous »

Цель — создать приложение для чтения, которое будет отображать HTML-содержимое, как книгу. Страницы должны иметь возможность пролистывания, а когда текст доходит до конца на одной странице, его необходимо продолжать на другой, а также динамически адаптироваться к изменениям размера шрифта.
/>Сейчас html представлен в виде коллекции

Код: Выделить всё

public ObservableCollection ParsedChapters { get; set; } = new ObservableCollection();
и расчет страницы работает следующим образом

Код: Выделить всё

      private void PopulateContent()
{
ParsedChapters.Clear();

double lineHeight = FontSize * 1.2;
int linesPerPage = (int)(_screenHeight / lineHeight);
double avgCharWidth = _fontSize * 0.6;
int charsPerLine = (int)(_sreenWidth / avgCharWidth);
int charsPerPage = linesPerPage * charsPerLine;
int totalLength = _bookContent.Length;
int chunkCount = (int)Math.Ceiling((double)totalLength / charsPerPage);
Pages = chunkCount;
OnPropertyChanged(nameof(CurrentPageDisplay));

for (int i = 0; i < chunkCount; i++)
{
int start = i * charsPerPage;
int length = Math.Min(charsPerPage, totalLength - start);
string chunk = new string(_bookContent.Slice(start, length).ToArray());
ParsedChapters.Add(chunk);
}
}

Проблема заключается в том, что, когда на html-странице много тегов разрыва строки, страница прокручивается (не помещается в расчетную область), и мне нужно избегать этого либо с помощью лучшего расчета, либо с помощью другого способа отобразить страницу .xaml, может быть, есть какое-то решение для такого рендеринга?... Я пробовал прокрутку с Orientation=Horizontal и многие другие вещи, но безрезультатно

Подробнее здесь: https://stackoverflow.com/questions/786 ... ike-a-book
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»