предисловие
Flutter — это платформа мобильного пользовательского интерфейса Google для быстрого создания высококачественных нативных пользовательских интерфейсов на iOS и Android.
Знаменитый Николас Гольбао в ИТ-индустрии однажды сказал: Колесо — это лестница ИТ-прогресса! Популярные фреймворки такие же, простые в использовании колеса, чтобы выбрать один из тысячи! В качестве кроссплатформенной среды разработки, появившейся за последние два года, сторонняя экосистема Flutter немного меньше, чем другие зрелые среды, но количество колес уже велико. В этой серии статей выбираются и делятся колесами, которые обычно используются в повседневной разработке приложений, чтобы повысить эффективность перемещения кирпичиков для всех.В то же время я надеюсь, что экология флаттера будет становиться все более и более совершенной, и будет все больше и больше больше колес.
В этой серии статей подготовлено более 50 рекомендаций по колесам, причины работы, и постарайтесь публиковать статью каждые 1-2 дня.
совет: эта серия статей подходит для разработчиков, у которых уже есть основы флаттера.Чтобы начать, нажмите:официальный сайт флаттера
текст
рулевое колесо
- Название колеса: Curved_navigation_bar
- Обзор колеса: классная анимированная нижняя панель вкладок для флаттера.
- Колесо Автор: rafbednarczuk@gmail.com
- Рекомендуемый индекс: ★★★★
- Общий индекс: ★★★★
- Предварительный просмотр эффекта:
Установить
dependencies:
curved_navigation_bar: ^0.3.1
import 'package:curved_navigation_bar/curved_navigation_bar.dart';
использовать
- items: список виджетов кнопок
- index: индекс NavigationBar, который можно использовать для изменения текущего индекса или установки начального индекса.
- color: цвет панели навигации, значение по умолчанию — Colors.white.
- buttonBackgroundColor: цвет фона плавающей кнопки.
- backgroundColor: фон, когда анимация NavigationBar пуста, по умолчанию Colors.blueAccent
- onTap: событие нажатия кнопки (индекс)
- animationCurve: кривая анимации, по умолчанию Curves.easeOutCubic
- animationDuration: продолжительность анимации изменения кнопки, по умолчанию Duration (миллисекунды: 600)
- высота: высота панели навигации, минимальное значение – 0,0, максимальное – 75,0.
Пример по умолчанию:
Scaffold(
bottomNavigationBar: CurvedNavigationBar(
backgroundColor: Colors.blueAccent,
items: <Widget>[
Icon(Icons.add, size: 30),
Icon(Icons.list, size: 30),
Icon(Icons.compare_arrows, size: 30),
],
onTap: (index) {
//Handle button tap
},
),
body: Container(color: Colors.blueAccent),
)
Используется вместе с TabBarView.
class CurvedNavigationBarDemo extends StatefulWidget {
CurvedNavigationBarDemo({Key key}) : super(key: key);
@override
_CurvedNavigationBarDemoState createState() => _CurvedNavigationBarDemoState();
}
class _CurvedNavigationBarDemoState extends State<CurvedNavigationBarDemo> with SingleTickerProviderStateMixin{
TabController tabController;
List colors=[Colors.blue,Colors.pink,Colors.orange];
int currentIndex=0;
@override
void initState() {
// TODO: implement initState
super.initState();
tabController = TabController(vsync: this, length: 3)..addListener((){
setState(() {
currentIndex=tabController.index;
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
bottomNavigationBar: CurvedNavigationBar(
backgroundColor: colors[currentIndex],
index: currentIndex,
items: <Widget>[
Icon(Icons.home, size: 30),
Icon(Icons.fiber_new, size: 30),
Icon(Icons.person, size: 30),
],
onTap: (index) {
//Handle button tap
setState(() {
currentIndex=index;
});
tabController.animateTo(index,duration: Duration(milliseconds: 300), curve: Curves.ease);
},
),
body: TabBarView(
controller: tabController,
children: <Widget>[
Container(
color: colors[0],
),
Container(
color: colors[1],
),
Container(
color: colors[2],
)
],
)
);
}
}
конец
- Адрес склада колес: г.universal.flutter-io.capable/packages/coarse…
- Исходный код демонстрационной версии серии:GitHub.com/826327700/…