Władimir (Zae)
Dimensions
Władimir (Zae)
берёшь длину девайса
Demuz
А n это сколько? Как я узнаю, сколько символов помещается на одну строку?
Хотя нет, я ошибся. Сейчас дойду, покажу вариант.
Vladimir
Вообще говоря это не такая простая задача и вот так в лоб ее не решить поделив два числа. В нативной части (андроид) я бы использовал встроенные утилиты для просчёта количества строк, как эту проблему решает RN и решает ли ее вообще - большой вопрос.
Vladimir
Но всегда есть вариант написать собственный нативный модуль :)
Екатерина
Можно ли реализовать тач ид без выпиливания Экспо?
Demuz
Demuz
и?
Я тебе скину сейчас код.
Миша
Лол, а со скачком контента что делать?
Миша
onLayout после рендера триггерится
Maxim 📱 D
У кого то сломалась сборка проекта сегодня?
Demuz
Миша
width / fontSize * 2 а это что?
Demuz
width / fontSize * 2 а это что?
Не верен что абсолютно верно, но по моему мнению это примерный расчет символов. Сколько символов поместится в строке, для данной ширины виндов, при определенном фонтсайзе.
Demuz
Посчитал, на моем экране numberOfLines обрезает до 41символа, а эта функция выдала мне 40 символов. Ну, что то вроде такого можно юзать. Просто я не могу же вам всю полность логику за вас написать. Но от этого вполне можно отталкиваться. И рекомендую ограницить numberOfLines на статическое значение.
Миша
лол, это же абсолютно рандомная формула, я не вижу в ней никакой связи с шириной символов, но, на самом деле, надо потестить
Demuz
ширина экрана, деленая на размер шрифта, здесь нет связи?
Władimir (Zae)
а не абсолютную истину
Władimir (Zae)
откуда он знает под какие задачи ты хочешь это переделать
Władimir (Zae)
ты так пишешь будто он тебе проект сдает
Миша
он тебе написал пример реализации
лол, это не мне надо, это просто интересная (и решаемая ли вообще в рамках рн?) задачка. просто перед этим писал про экспандер, и я накинул
Michael
На разных системах по-разному растеризуются ещё
Demuz
Что такое глифы? Во всяком случае, в любой ситуации можно под себя формулу написать.
Миша
Что такое глифы? Во всяком случае, в любой ситуации можно под себя формулу написать.
она должна быть универсальной, ширина экрана же меняется
Demuz
она должна быть универсальной, ширина экрана же меняется
Именно с таким фонтом это универсальная. Там будет не на столько большая погрешность, которая вызовет искажения отображения.
Demuz
Demuz
Ширина экрана увеличена, шрифт увеличен до 30. Формула не тронута.
Demuz
Demuz
Demuz
А вот здесь, целенаправленно увеличен шрифт до 70, чтобы надпись не поместилась.
Demuz
Видите? Кнопка есть шоу мор. Я говорю, там погрешность не такая уж и адская, что прям выбрасывать такое решение на помойку.
Demuz
🦜
yourbunnywrote
Demuz
Везде нормально вычисляет же.
🦜
[f
🦜
ха
Vladimir
Так, а теперь запустите на ферме девайсов которые переопределяют шрифты. Поменяйте настройки пользователя на использование больших шрифтов.
🦜
я так и думал
Demuz
Да. Твоя зайка пишет. Переводится. 😂
Vladimir
Это плохое решение, оно не будет работать в общем случае.
Demuz
Оно будет работать в БОЛЬШИНСТВЕ случаев.
Vladimir
Оно будет работать в БОЛЬШИНСТВЕ случаев.
Это очень сильное заявление.
Demuz
Поменял шрифты на огромные *в телефоне. Работает. Что дальше сделать?
Vladimir
Я же вам написал, зарандомите фонт на девайсе.
Vladimir
Если вам кажется что это редкий кейс, то вы ошибаетесь. Погуглите на предмет кастомных шрифтов самсунгов.
Demuz
Вижу, у меня только если совсем максимально огромный ставлю, тогда уже неверно работает формула. Хорошо, вытащим размер шрифта и его имя из системы.
Demuz
Vladimir
Вы продолжаете подпирать костылями, вместо того чтобы искать решение.
Demuz
Я не должен искать решение. Я говорю что вытащил бы размер шрифта из системы и исходя от него бы рассчитывал.
Vladimir
Конечно есть, я же писал выше - возьмите нативное апи и оберните в модуль для RN.
Миша
Конечно есть, я же писал выше - возьмите нативное апи и оберните в модуль для RN.
там есть апи для этого? вообще не шарю за нативные возможности
Миша
или такими костылями?
Vladimir
Для андроида по крайней мере
Aleksei
для иос тоже
Demuz
Ну адрес системного звука же можно вытащить, полагаю рн модули не особо недоразвиты, что нельзя размер шрифта вытащить.
Artem
что-то вроде такого модуля надо нативного https://github.com/airamrguez/react-native-measure-text
Demuz
Еще можно запретить изменение саого размера шрифта. Чтобы системная настройка не влияла на текст. allowFontScaling={false}
Demuz
А для этого внутри приложения настройки делаются. В телеграме тоже настройка не повлияла на приложение и размер его шрифтов. У него внутри самого приложения настраивается. Плохое приложение?
Demuz
Вот сейчас гигантский шрифт стоит в системе. Телеграм такой же остаётся.
Vladimir
Если так, то да, это плохо.
Artem
достаточно только в код посмотреть
Demuz
Мне нравится. Я хочу внутри отдельно настроить. Так как приложения все не придерживаются какого-либо общепринятого стандарта.
Artem
Мне нравится. Я хочу внутри отдельно настроить. Так как приложения все не придерживаются какого-либо общепринятого стандарта.
а теперь представь, что ты слабовидящий и не видишь ничего, что написано меньше текста xlarge. тебе кто-то поменял в настройках телефона размер текста и ты нормально пользуешься. открываешь телеграм, а там каша перед глазами
Artem
надо искать лупу или кого-то, кто опять настроит