import 'package:flutter/material.dart';
class Index extends StatefulWidget {
const Index({
Key? key}) : super(key: key);
State<Index> createState() => _IndexState();
}
var currentTab = 0;
List<Widget> list = [];
PageController? myController;
class _IndexState extends State<Index> {
leftTab() {
return InkWell(
onTap: () {
setState(() {
currentTab = 0;
myController?.animateTo(0, duration: const Duration(microseconds: 200), curve: Curves.linear);
});
},
child: Container(
margin: const EdgeInsets.all(5),
decoration: BoxDecoration(
color: currentTab == 0 ? Colors.yellow : Colors.red,
borderRadius: currentTab == 0
? BorderRadius.circular(10)
: BorderRadius.zero),
child: Text("首页",
style: TextStyle(
color: currentTab == 0 ? Colors.green : Colors.black))),
);
}
rightTab() {
return InkWell(
onTap: () {
setState(() {
currentTab = 1;
myController?.animateTo(MediaQuery.of(context).size.width, duration: const Duration(microseconds: 200), curve: Curves.linear);
});
},
child: Container(
decoration: BoxDecoration(
color: currentTab == 1 ? Colors.yellow : Colors.red,
borderRadius: currentTab == 1
? BorderRadius.circular(10)
: BorderRadius.zero),
child: Text("我的",
style: TextStyle(
color: currentTab == 1 ? Colors.green : Colors.black))),
);
}
Widget buildTitleView() {
return Row(
mainAxisSize: MainAxisSize.min,
children: [leftTab(), rightTab()],
);
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: buildTitleView(),
titleTextStyle: const TextStyle(fontSize: 36, color: Colors.green),
toolbarHeight: 100.0,
centerTitle: true,
leading: const Icon(Icons.add),
),
body: PageView(
children: list,
onPageChanged: (index) {
setState(() {
currentTab = index;
});
},
controller: myController,
),
// body: Column(
// crossAxisAlignment: CrossAxisAlignment.center,
// mainAxisAlignment: MainAxisAlignment.center,
// children: [
// Container(
// color: Colors.lightBlueAccent,
// alignment: Alignment.center,
// child: Text("day03学习"),
// )
// ],
// ),
);
}
void initState() {
super.initState();
list = [const Text("首页内容"), const Text("我的内容")];
myController = PageController(initialPage: 0, keepPage: true);
}
}
```c
自定义appbarTitle + pageview 实现类似安卓tabHost+Fragment
猜你喜欢
转载自blog.csdn.net/qq_30519365/article/details/127667979
今日推荐
周排行