колесо флаттера
Что такое флаттер?
Прежде всего, давайте поговорим о флаттере. По оценкам, многие люди никогда не слышали о флаттере. Это кроссплатформенный пользовательский интерфейс мобильного приложения, запущенный Google. Он имеет ту же цель, что и React Native, и поддерживает три платформы: Android, Ios, One — это новая система от Google, я забыл, как она называется… Я немного использовал React Native, но не изучал ее глубоко. В общем, производительность флаттер-фреймворка все еще может полностью злоупотреблять React Native, ведь у него нет промежуточного слоя. Особенно хорошо флаттер справляется с загрузкой GIF-файлов.В случае с Rn несколько гифок напрямую застревают и вылетают при загрузке в интерфейсе... Еще одна изюминка флаттера: что такое настоящая кроссплатформенность?Это в IOS Использование материальный дизайн, андроид использует стиль ios. После запуска двух платформ интерфейс практически идентичен. Наконец, давайте поговорим о недостатках: нет JSX или XML, слишком много скобок и плохая читабельность кода. Стоимость обучения выше, чем у rn, а его макет можно разделить на N компонентов, и вам нелегко понять, что делает каждый макет.
Введение
Заходя в тему,это опенсорсный компонент pull-to-refresh+pull-up load,что?увидев такое,можно пожаловаться,что он pull-down для обновления еще раз,ты колесо повторяешь?Нет!Если поискать для раскрывающегося компонента обновления во флаттере трудно иметь достаточно хорошие колеса. Этот компонент инкапсулирован снаружи и подходит практически для всех контейнеров, таких как: listView, gridView, Container, Text, ScrollView... и так далее.
Зачем это писать?
Поскольку сейчас во флаттере действительно слишком мало компонентов, мне сложно найти компонент обновления с выпадающим меню, многие из которых не соответствуют моим потребностям, либо отсутствие UI, либо низкая масштабируемость и высокие ограничения. Таким образом, чтобы написать первый шаг проекта, на самом деле невозможно написать проект без хорошего компонента «вытягивай-для-обновления».
Начальник просит гифку, чтобы остыть?
IOS:
Android:Как добиться?
В начале я вообще-то планировал использовать предоставленную им анимацию Size для реализации головы и хвоста путем изменения высоты, но на полпути обнаружил, что эта идея неосуществима, потому что эта анимация может масштабироваться только по верхним координатам, а не вдоль дна.Координаты являются началом масштаба. Поэтому заставьте Revert пройти. Позже я также думал о множестве анимаций и пробовал анимацию смещения, но все равно безрезультатно. В конце концов, метод, который я решил использовать, состоит в том, чтобы использовать анимацию размера, но разница в том, что здесь на самом деле есть две части головы, одна из которых является реальным компонентом головы, а другая — занимающей частью, которая нажимает на голову. Bit View, размер этого вида-заполнителя необходимо изменить с помощью анимации размера, чтобы головной компонент можно было подвешивать на определенное расстояние в состоянии обновления. Таким образом, можно реализовать вытягивание и подтягивание, гибкость IOS также очень высока, а упаковка внешних компонентов также легко масштабируется.
блок-схема:
впечатление
В процессе реализации я столкнулся со многими и многими подводными камнями. Во-первых, флаттер не позволяет получить высоту дочернего компонента в методе сборки.На самом деле, кажется, что React Native тоже.Поскольку ваш интерфейс не был отрендерен, вы не должны знать высоту внутри, и есть нет метода обратного вызова для завершения рендеринга, такого как Oncreate в Android, многие люди упомянули как минимум 5 или 6 сообщений в его выпуске. Во-вторых, метод контроля прокрутки немного несовершенен, что проявляется во многих местах. В-третьих, элементы управления макетом спроектированы так, чтобы быть немного сложными.Все мы знаем, что существует пять наиболее часто используемых макетов Android, верно?Относительный, Линейный, Табличный... и т. д., но знаете ли вы, сколько видов предлагает нам флаттер? ? Row, Column, Center, Align, Flow, Container, Stack.... и т. д. бесчисленны, это делит свойства элементов управления на элементы управления, и это также является причиной того, что люди жалуются на читабельность флаттер-кода, в результате чего высокие затраты на обучение.