carga inicial

This commit is contained in:
2021-05-05 15:52:09 -03:00
parent dbf070041b
commit 129abeccf6
58 changed files with 385 additions and 133 deletions
+44 -39
View File
@@ -1,55 +1,60 @@
import 'package:appcardsstarter/home/home.dart';
import 'package:appcardsstarter/notificacoes/notificacoes.dart';
import 'package:appcardsstarter/videos/youtube_videos.dart';
//import 'package:decpisos/home/home.dart';
import 'package:decpisos/index/index_controller.dart';
//import 'package:decpisos/notificacoes/notificacoes.dart';
//import 'package:decpisos/videos/youtube_videos.dart';
import 'package:convex_bottom_bar/convex_bottom_bar.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class IndexScreen extends StatefulWidget {
@override
_IndexScreenState createState() => _IndexScreenState();
}
class _IndexScreenState extends State<IndexScreen> with SingleTickerProviderStateMixin{
TabController _tabController;
class _IndexScreenState extends State<IndexScreen> {
// TabController _tabController;
@override
void initState() {
super.initState();
_tabController = TabController(length: 3, vsync: this);
_tabController.index = 1;
}
// @override
// void initState() {
// super.initState();
// _tabController = TabController(length: 3, vsync: this);
// _tabController.index = 1;
// }
@override
void dispose() {
_tabController.dispose();
super.dispose();
}
// @override
// void dispose() {
// _tabController.dispose();
// super.dispose();
// }
final IndexController c = Get.put(IndexController());
@override
Widget build(BuildContext context) {
return Scaffold(
body: TabBarView(
controller: _tabController,
physics: NeverScrollableScrollPhysics(),
children: [
YouTubeVideosScreen(),
HomeScreen(),
NotificacoesScreen()
]
),
bottomNavigationBar: ConvexAppBar(
items: [
TabItem(icon: Icons.video_collection, title: 'Vídeos'),
TabItem(icon: Icons.home, title: 'Home'),
TabItem(icon: Icons.notifications, title: 'Notificações'),
],
style: TabStyle.flip,
backgroundColor: Theme.of(context).primaryColor,
controller: _tabController,
// onTap: (int i){
// print(i);
// },
),
body: Obx(() => TabBarView(
controller: c.tabController,
physics: NeverScrollableScrollPhysics(),
// children: [
// YouTubeVideosScreen(),
// HomeScreen(),
// NotificacoesScreen()
// ]
children: c.childrenTabs.map((element) => element).toList(),
)),
bottomNavigationBar: Obx(() => ConvexAppBar(
// items: [
// TabItem(icon: Icons.video_collection, title: 'Vídeos'),
// TabItem(icon: Icons.home, title: 'Home'),
// TabItem(icon: Icons.notifications, title: 'Notificações'),
// ],
items: c.tabs.map((element) => element).toList(),
style: TabStyle.flip,
backgroundColor: Theme.of(context).primaryColor,
controller: c.tabController,
// onTap: (int i){
// print(i);
// },
)),
);
}
}
}
+46
View File
@@ -0,0 +1,46 @@
import 'package:decpisos/home/home.dart';
import 'package:decpisos/notificacoes/notificacoes.dart';
import 'package:decpisos/videos/youtube_videos.dart';
import 'package:convex_bottom_bar/convex_bottom_bar.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class IndexController extends GetxController with SingleGetTickerProviderMixin{
TabController tabController;
var tabs = List<TabItem>().obs;
var childrenTabs = List<Widget>().obs;
@override
void onInit() {
super.onInit();
this.initTabs();
this.tabController.index = 1;
}
@override
void onClose() {
this.tabController.dispose();
super.onClose();
}
void initTabs(){
this.childrenTabs.add(YouTubeVideosScreen());
this.childrenTabs.add(HomeScreen());
this.childrenTabs.add(NotificacoesScreen());
this.tabs.add(TabItem(icon: Icons.video_collection, title: 'Vídeos'));
this.tabs.add(TabItem(icon: Icons.home, title: 'Home'));
this.tabs.add(TabItem(icon: Icons.notifications, title: 'Notificações'));
this.tabController = TabController(vsync: this, length: this.tabs.length);
}
void tabsWithoutVideos(){
this.childrenTabs.clear();
this.tabs.clear();
this.childrenTabs.add(HomeScreen());
this.childrenTabs.add(NotificacoesScreen());
this.tabs.add(TabItem(icon: Icons.home, title: 'Home'));
this.tabs.add(TabItem(icon: Icons.notifications, title: 'Notificações'));
this.tabController = new TabController(vsync: this, length: this.tabs.length);
Get.rawSnackbar(message: 'Vídeos temporariamente indisponível');
}
}