carga inicial
This commit is contained in:
+44
-39
@@ -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);
|
||||
// },
|
||||
)),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user