提交 4b8b09ce authored 作者: yueweilu's avatar yueweilu

我的界面主页 调整布局

上级 9731fd18
...@@ -13,107 +13,113 @@ class _MinePageState extends State<MinePage> { ...@@ -13,107 +13,113 @@ class _MinePageState extends State<MinePage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return GetBuilder<MineController>( return GetBuilder<MineController>(
init: MineController(), init: MineController(),
builder:(controller) => Scaffold( builder:(controller) => Stack(
backgroundColor:Colours.cF9, children: [
appBar: CustomAppBar( Image.asset('assets/images/mine_bg.png'),
backgroundColor: Colors.transparent, Scaffold(
actions: [ backgroundColor:Colors.transparent,
CustomButton.icon( appBar: CustomAppBar(
padding: EdgeInsets.zero,
backgroundColor: Colors.transparent,
icon: Image.asset(
'assets/images/read_history.png',
),
onPressed: () => context.pushNamed(Routes.studyHistory),
),
CustomButton.icon(
padding: EdgeInsets.zero,
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
icon: Image.asset( actions: [
'assets/images/set.png', CustomButton.icon(
), padding: EdgeInsets.zero,
onPressed: () => context.pushNamed(Routes.msgs), backgroundColor: Colors.transparent,
), icon: Image.asset(
GestureDetector( 'assets/images/read_history.png',
onTap: (){ ),
context.pushNamed(Routes.msgs); onPressed: () => context.pushNamed(Routes.studyHistory),
// controller.logout(context);
},
child: badges.Badge(
position: badges.BadgePosition.topEnd(top: -5, end: 0),
showBadge: controller.num == 0?false:true,
badgeContent: Text(controller.num.toString(),style: const TextStyle(fontSize: 7,color: Colors.white),),
badgeStyle: const badges.BadgeStyle(
badgeColor: AppTheme.primary,
shape: badges.BadgeShape.circle
), ),
child: CustomButton.icon( CustomButton.icon(
padding: EdgeInsets.zero, padding: EdgeInsets.zero,
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
icon: Image.asset( icon: Image.asset(
'assets/images/msg_black.png', 'assets/images/set.png',
), ),
// onPressed: () => context.pushNamed(Routes.msgs), onPressed: () => context.pushNamed(Routes.msgs),
), ),
), GestureDetector(
) onTap: (){
], context.pushNamed(Routes.msgs);
), // controller.logout(context);
body: Container( },
color: Colours.cF9, child: badges.Badge(
child: SingleChildScrollView( position: badges.BadgePosition.topEnd(top: -5, end: 0),
child: Container( showBadge: controller.num == 0?false:true,
margin: const EdgeInsets.symmetric(horizontal: AppTheme.margin), badgeContent: Text(controller.num.toString(),style: const TextStyle(fontSize: 7,color: Colors.white),),
child: Column( badgeStyle: const badges.BadgeStyle(
children: [ badgeColor: AppTheme.primary,
BuildUser(userInfo:controller.userInfo,onTap: (){ shape: badges.BadgeShape.circle
context.pushNamed(Routes.userInfo);
},),
Gaps.vGaps10,
BuildRead(items: controller.reads,onTap: (ReadModel model) async{
final result = await context.pushNamed(model.link??'');
if (result == true){
controller.getInfo();
}
}),
controller.ads.isNotEmpty?Gaps.vGaps10:const SizedBox(),
controller.ads.isNotEmpty?
Container(
color: Colors.transparent,
padding: const EdgeInsets.symmetric(horizontal: 10),
child: BuildBanner(items:controller.ads),
):const SizedBox(),
Gaps.vGaps10,
BuildAccount(items:controller.accounts,),
Gaps.vGaps10,
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
color: const Color(0xFFF9F9F9),
boxShadow: [
BoxShadow(
color: const Color(0xFFC7C7C7).withOpacity(0.5),
offset: const Offset(3, 0),
blurRadius: 10.w,
spreadRadius: 0.w,
),
],
), ),
child: Column( child: CustomButton.icon(
children: [ padding: EdgeInsets.zero,
_buildItem('账户安全', ''), backgroundColor: Colors.transparent,
Container(color: Colours.cLine,margin: const EdgeInsets.symmetric(horizontal: 15),height: 1,), icon: Image.asset(
_buildItem('意见反馈', ''), 'assets/images/msg_black.png',
Container(color: Colours.cLine,margin: const EdgeInsets.symmetric(horizontal: 15),height: 1,), ),
_buildItem('关于我们', Routes.about), // onPressed: () => context.pushNamed(Routes.msgs),
],
), ),
), ),
], )
],
),
body: Container(
color: Colors.transparent,
child: SingleChildScrollView(
child: Container(
// margin: const EdgeInsets.symmetric(horizontal: AppTheme.margin),
child: Column(
children: [
BuildUser(userInfo:controller.userInfo,onTap: (){
context.pushNamed(Routes.userInfo);
},),
Gaps.vGaps10,
BuildRead(items: controller.reads,onTap: (ReadModel model) async{
final result = await context.pushNamed(model.link??'');
if (result == true){
controller.getInfo();
}
}),
controller.ads.isNotEmpty?Gaps.vGaps10:const SizedBox(),
controller.ads.isNotEmpty?
Container(
color: Colors.transparent,
padding: const EdgeInsets.symmetric(horizontal: 10),
child: BuildBanner(items:controller.ads),
):const SizedBox(),
Gaps.vGaps5,
BuildAccount(items:controller.accounts,),
Gaps.vGaps10,
Container(
margin: const EdgeInsets.symmetric(horizontal: AppTheme.margin),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
color: Colors.white,
boxShadow: [
BoxShadow(
color: const Color(0xFFC7C7C7).withOpacity(0.5),
offset: const Offset(3, 0),
blurRadius: 10.w,
spreadRadius: 0.w,
),
],
),
child: Column(
children: [
_buildItem('账户安全', ''),
Container(color: Colours.cLine,margin: const EdgeInsets.symmetric(horizontal: 15),height: 1,),
_buildItem('意见反馈', ''),
Container(color: Colours.cLine,margin: const EdgeInsets.symmetric(horizontal: 15),height: 1,),
_buildItem('关于我们', Routes.about),
],
),
),
],
),
),
), ),
), ),
), )
), ],
), ),
); );
} }
...@@ -135,10 +141,10 @@ class _MinePageState extends State<MinePage> { ...@@ -135,10 +141,10 @@ class _MinePageState extends State<MinePage> {
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Text(title,style: const TextStyle(fontSize: 14,color: Colours.c3,),), Text(title,style: const TextStyle(fontSize: 14,color: Colours.c3,),),
Container( SizedBox(
width: 5, width: 5,
height: 8, height: 8,
color: Colors.cyan, child: Image.asset('assets/images/right_arrow.png'),
) )
], ],
), ),
......
...@@ -12,9 +12,10 @@ class BuildAccount extends StatelessWidget { ...@@ -12,9 +12,10 @@ class BuildAccount extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
margin: const EdgeInsets.symmetric(horizontal: AppTheme.margin),
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
color: const Color(0xFFF9F9F9), color:Colors.white,
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: const Color(0xFFC7C7C7).withOpacity(0.5), color: const Color(0xFFC7C7C7).withOpacity(0.5),
......
...@@ -14,45 +14,54 @@ class BuildRead extends StatelessWidget { ...@@ -14,45 +14,54 @@ class BuildRead extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return GestureDetector( return GestureDetector(
child: Container( child: Stack(
padding: const EdgeInsets.symmetric(vertical: 16.5), children: [
decoration: BoxDecoration( Container(
borderRadius: BorderRadius.circular(8), width: double.infinity,
color: const Color(0xFFF9F9F9), child: Image.asset('assets/images/read_bg.png',fit: BoxFit.cover,)
boxShadow: [ ),
BoxShadow( Container(
color: const Color(0xFFC7C7C7).withOpacity(0.5), padding: const EdgeInsets.symmetric(vertical: 16.5),
offset: const Offset(3, 0), color: Colors.transparent,
blurRadius: 10.w, // decoration: BoxDecoration(
spreadRadius: 0.w, // borderRadius: BorderRadius.circular(8),
// color: Colors.transparent,
// boxShadow: [
// BoxShadow(
// color: const Color(0xFFC7C7C7).withOpacity(0.5),
// offset: const Offset(3, 0),
// blurRadius: 10.w,
// spreadRadius: 0.w,
// ),
// ],
// ),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: items.map((model){
return GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: (){
if (model.link != null){
if (model.link != Routes.love){
context.pushNamed(model.link!);
}
else{
if (onTap !=null) onTap!(model);
}
}
},
child: Column(
children: [
Text(model.value,style: const TextStyle(fontSize: 18,height: 1.6,fontWeight: Fonts.medium,color: Colours.c3),),
Gaps.vGaps5,
Text(model.name,style: const TextStyle(fontSize: 13,height:1.6,color: Colours.c6))
],
),
);
}).toList(),
), ),
], )
), ],
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: items.map((model){
return GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: (){
if (model.link != null){
if (model.link != Routes.love){
context.pushNamed(model.link!);
}
else{
if (onTap !=null) onTap!(model);
}
}
},
child: Column(
children: [
Text(model.value,style: const TextStyle(fontSize: 18,height: 1.6,fontWeight: Fonts.medium,color: Colours.c3),),
Gaps.vGaps5,
Text(model.name,style: const TextStyle(fontSize: 13,height:1.6,color: Colours.c6))
],
),
);
}).toList(),
),
), ),
); );
} }
......
...@@ -17,42 +17,89 @@ class BuildUser extends StatelessWidget { ...@@ -17,42 +17,89 @@ class BuildUser extends StatelessWidget {
return GestureDetector( return GestureDetector(
behavior: HitTestBehavior.opaque, behavior: HitTestBehavior.opaque,
onTap:onTap, onTap:onTap,
child: Row( child: Container(
children: [ margin: EdgeInsets.only(left: 10,right: 10),
Container( color: Colors.transparent,
width: 45.w, child: Row(
height: 45.w, mainAxisAlignment: MainAxisAlignment.spaceBetween,
decoration: BoxDecoration( children: [
borderRadius: BorderRadius.circular(22.5), Row(
color: Colors.cyan, children: [
Container(
width: 45.w,
height: 45.w,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(22.5),
color: Colors.cyan,
),
// color: Colors.cyan,
child: CustomImage.network(url: userInfo.containsKey('head_img')?userInfo['head_img']:'',radius: 22.5,),
),
Gaps.hGaps10,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(userInfo.containsKey('name')?userInfo['name']:'',style: TextStyle(
color: Colours.c3,
fontSize: 15.w,
fontWeight: Fonts.medium,
height: 1.6.w
),),
Gaps.hGaps20,
Stack(
children: [
Container(
padding: EdgeInsets.only(right:8,left: 8),
height: 20,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(21),
gradient: LinearGradient(
colors: [AppTheme.primary.withOpacity(0.03),AppTheme.primary.withOpacity(0.1)] , // 不可点击时的颜色,透明度为0.7
begin: Alignment.centerLeft,
end: Alignment.centerRight,
),
),
child: Row(
children: [
Container(
width: 16,
height: 17,
),
const Text('初级学者',style: TextStyle(fontSize: 11,color: AppTheme.primary),)
],
),
),
Positioned(
left: 8,
child: SizedBox(
width: 16, height:17,
child: Image.asset('assets/images/grade.png')
),
)
],
)
],
),
Gaps.vGaps5,
Text(userInfo.containsKey('phone')?userInfo['phone']:'',style: TextStyle(
fontSize: 12.w,
color: Colours.c6
),)
],
),
Gaps.hGaps20,
],
), ),
// color: Colors.cyan, SizedBox(
child: CustomImage.network(url: userInfo.containsKey('head_img')?userInfo['head_img']:''), width: 5,
), height: 9,
Gaps.hGaps10, child: Image.asset('assets/images/right_arrow.png'),
Column( )
crossAxisAlignment: CrossAxisAlignment.start, ],
children: [ ),
Text(userInfo.containsKey('name')?userInfo['name']:'',style: TextStyle(
color: Colours.c3,
fontSize: 15.w,
fontWeight: Fonts.medium,
height: 1.6.w
),),
Gaps.vGaps5,
Text(userInfo.containsKey('phone')?userInfo['phone']:'',style: TextStyle(
fontSize: 12.w,
color: Colours.c6
),)
],
),
Gaps.hGaps20,
Container(
width: 5,
height: 9,
color: Colors.cyan,
)
],
), ),
); );
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论