Комментарии 2
Сложности при написании кода: большая вложенность виджетов.
Я например разбиваю на функции возвращающие Widget и все никакого кошмара.
@override
Widget build(BuildContext context) {
return
new Column(
children: [new Container(
padding: const EdgeInsets.only(top:8.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
crossAxisAlignment:CrossAxisAlignment.start,
children: [
rbuildButtonColumn(context,'img/data.png', 'Загрузить',pressdownload),
rbuildButtonColumn(context,'img/doc_pokupka.png', 'Выгрузить',pressupload),
],
),
)
,getprogress(context)]
);
}
UI Загружающая выгружающая sqlite базу.
rbuildButtonColumn Строит кнопку с рисунком с логикой pressdownload/pressupload Загрузить /Выгрузить
а ,getprogress(context)] Рисует Прогрес индикатор, а также, что загружено успешно, или ошибку.(с рисуночками соответствующими)
И ,getprogress(context)] Тоже разбит
Widget getprogress(BuildContext context){
switch (downloadstate){
case 1:return getdownloading(context);break;
case -1:return geterror(context);break;
case 2:return getcompleted(context);break;
default: return new Container();
}
Спасибо за подсказку. Основная сложность для меня в том, что некоторые виджеты типа Row, SizedBox и т.д. надо проверять и изучать как делать лучше, какой элемент должен быть внутри, какой снаружи. Оборачивать весь виджет, либо перемещать его уровнем выше. vim-mode вместе с vim-регистрами очень полезны в этом случае.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
bobaflu — программируем аксессуары на flutter