Как определить объем текста, который может поместиться на каждой странице (дочерней) виджета PageView, в соответствии с характеристиками экрана?

Я работаю над мобильным приложением, которое представляет собой книгу-игру. Он содержит эпизоды, каждый из которых состоит из одной или нескольких страниц текста. Для каждого эпизода я использую PageView с дочерними столбцами (с вложенным текстом и RichText) для каждой страницы. Ориентация экрана заблокирована на PortraitUp, а textScaleFactor — на 1.0. Проблемы, которые я обнаружил при таком подходе, связаны с различными характеристиками экрана мобильных устройств:

  1. Мне нужно определить количество текста для каждого дочернего элемента PageView. Но сколько текста не будет переливаться снизу на меньших экранах? Мой подход до сих пор состоит в том, чтобы тестировать на относительно небольших устройствах с разрешением, близким к 360 x 640 логических пикселей, и оставлять дополнительное пространство под текстом. Кроме того, я мог бы сделать каждую страницу PageView прокручиваемой, тем самым вообще предотвратив переполнение, но, на мой взгляд, это приведет к плохому UX.
  2. Я использую размер шрифта, подходящий для устройств с указанным разрешением. Но на значительно больших экранах это будет выглядеть некрасиво.

Итак, есть ли хороший способ определить, сколько текста разместить на каждой странице PageView и масштабировать размер шрифта в соответствии с размером мобильного устройства и характеристиками экрана? Кроме того, я буду признателен, если кто-нибудь предложит лучший способ составить такое книжное мобильное приложение с Flutter (используя другой набор виджетов).

Спасибо за ваше время.


person MilenB    schedule 22.06.2021    source источник


Ответы (1)


@Milenb Если вы можете добавить текстовую разбивку на страницы, я думаю, это решит вашу проблему. Вам не нужно уменьшать/увеличивать масштаб в зависимости от высоты экрана. Если вы посмотрите на эту тему тогда вы будете знать, как это сделать.

person TheAlphamerc    schedule 22.06.2021