init
This commit is contained in:
15
lib/views/auth/index_page.dart
Normal file
15
lib/views/auth/index_page.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class AuthPage extends StatefulWidget {
|
||||
const AuthPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<AuthPage> createState() => _AuthPageState();
|
||||
}
|
||||
|
||||
class _AuthPageState extends State<AuthPage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container();
|
||||
}
|
||||
}
|
||||
15
lib/views/home/index_page.dart
Normal file
15
lib/views/home/index_page.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class HomePage extends StatefulWidget {
|
||||
const HomePage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_HomePageState createState() => _HomePageState();
|
||||
}
|
||||
|
||||
class _HomePageState extends State<HomePage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container();
|
||||
}
|
||||
}
|
||||
15
lib/views/moments/index/index_page.dart
Normal file
15
lib/views/moments/index/index_page.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class MomentsPage extends StatefulWidget {
|
||||
const MomentsPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_MomentsPageState createState() => _MomentsPageState();
|
||||
}
|
||||
|
||||
class _MomentsPageState extends State<MomentsPage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container();
|
||||
}
|
||||
}
|
||||
78
lib/views/public/app_page.dart
Normal file
78
lib/views/public/app_page.dart
Normal file
@@ -0,0 +1,78 @@
|
||||
import 'package:chat/configs/app_colors.dart';
|
||||
import 'package:chat/services/tabbar_service.dart';
|
||||
import 'package:chat/views/home/index_page.dart';
|
||||
import 'package:chat/views/moments/index/index_page.dart';
|
||||
import 'package:chat/views/user/index/user_page.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:proste_indexed_stack/proste_indexed_stack.dart';
|
||||
|
||||
class AppPage extends StatelessWidget {
|
||||
AppPage({Key? key}) : super(key: key);
|
||||
|
||||
final List<IndexedStackChild> _tabBarPageList = [
|
||||
IndexedStackChild(child: const HomePage()),
|
||||
IndexedStackChild(child: const MomentsPage()),
|
||||
IndexedStackChild(child: const UserPage()),
|
||||
];
|
||||
|
||||
final List<Map> _tabBarList = [
|
||||
{
|
||||
'icon': 'tabBar_03.png',
|
||||
'label': '首页',
|
||||
},
|
||||
{
|
||||
'icon': 'tabBar_03.png',
|
||||
'label': '首页',
|
||||
},
|
||||
{
|
||||
'icon': 'tabBar_03.png',
|
||||
'label': '首页',
|
||||
},
|
||||
];
|
||||
|
||||
Widget _bottomNavigationBar() {
|
||||
return GetX<TabbarService>(
|
||||
builder: (_) {
|
||||
return BottomNavigationBar(
|
||||
currentIndex: _.index,
|
||||
onTap: (index) {
|
||||
_.index = index;
|
||||
},
|
||||
items: _tabBarList.map((item) {
|
||||
return BottomNavigationBarItem(
|
||||
icon: Image.asset(
|
||||
'assets/icons/${item['icon']}',
|
||||
width: 20,
|
||||
height: 20,
|
||||
),
|
||||
activeIcon: Image.asset(
|
||||
'assets/icons/${item['icon']}',
|
||||
color: AppColors.primary,
|
||||
width: 20,
|
||||
height: 20,
|
||||
),
|
||||
label: item['label'],
|
||||
tooltip: '',
|
||||
);
|
||||
}).toList(),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: GetX<TabbarService>(
|
||||
builder: (_) {
|
||||
return ProsteIndexedStack(
|
||||
index: _.index,
|
||||
children: _tabBarPageList,
|
||||
);
|
||||
},
|
||||
),
|
||||
bottomNavigationBar: _bottomNavigationBar(),
|
||||
);
|
||||
}
|
||||
}
|
||||
15
lib/views/public/scan_page.dart
Normal file
15
lib/views/public/scan_page.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class ScanPage extends StatefulWidget {
|
||||
const ScanPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_ScanPageState createState() => _ScanPageState();
|
||||
}
|
||||
|
||||
class _ScanPageState extends State<ScanPage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container();
|
||||
}
|
||||
}
|
||||
73
lib/views/public/transit_page.dart
Normal file
73
lib/views/public/transit_page.dart
Normal file
@@ -0,0 +1,73 @@
|
||||
import 'dart:async';
|
||||
import 'package:chat/routes/app_routes.dart';
|
||||
import 'package:chat/routes/auth_routes.dart';
|
||||
import 'package:chat/services/auth_service.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_swiper_null_safety/flutter_swiper_null_safety.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class TransitPage extends StatefulWidget {
|
||||
const TransitPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<TransitPage> createState() => _TransitPageState();
|
||||
}
|
||||
|
||||
/// 这里的加载图片,应该是可以请求网络图片的,但是要考虑网络图片的加载周期,还有网络环境因素等
|
||||
class _TransitPageState extends State<TransitPage> {
|
||||
final int _leftTime = 5;
|
||||
late Timer _timer;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
void _jumpToRootPage() {
|
||||
if (AuthService.to.isUserLogin) {
|
||||
Get.offAllNamed(AppRoutes.app);
|
||||
} else {
|
||||
Get.offAllNamed(AuthRoutes.index);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(
|
||||
children: [
|
||||
SizedBox(
|
||||
width: double.infinity,
|
||||
height: double.infinity,
|
||||
child: Swiper(
|
||||
autoplay: true,
|
||||
itemCount: 2,
|
||||
pagination: const SwiperPagination(),
|
||||
itemBuilder: (BuildContext context, int index) {
|
||||
return Image.asset(
|
||||
'assets/transits/${index + 1}.png',
|
||||
fit: BoxFit.cover,
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
Positioned(
|
||||
bottom: 32,
|
||||
right: 32,
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
_timer.cancel();
|
||||
_jumpToRootPage();
|
||||
},
|
||||
child: Text(
|
||||
'跳过($_leftTime)',
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
20
lib/views/public/unknown_page.dart
Normal file
20
lib/views/public/unknown_page.dart
Normal file
@@ -0,0 +1,20 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class UnknownPage extends StatelessWidget {
|
||||
const UnknownPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
body: Center(
|
||||
child: ElevatedButton(
|
||||
onPressed: () {
|
||||
Get.back();
|
||||
},
|
||||
child: const Text('未知的页面'),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
15
lib/views/user/index/user_page.dart
Normal file
15
lib/views/user/index/user_page.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class UserPage extends StatefulWidget {
|
||||
const UserPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_UserPageState createState() => _UserPageState();
|
||||
}
|
||||
|
||||
class _UserPageState extends State<UserPage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user