Browse Source

UI

null_safety
fmk 3 years ago
parent
commit
f001c02ae1
  1. 6
      lib/mine/mine_vip_level_page.dart
  2. 287
      lib/view_widget/mine_vip_view.dart

6
lib/mine/mine_vip_level_page.dart

@ -69,16 +69,14 @@ class _MineVipLevelPage extends State<MineVipLevelPage> {
physics: BouncingScrollPhysics(), physics: BouncingScrollPhysics(),
child: Column( child: Column(
children: [ children: [
AspectRatio( Container(
aspectRatio: 1.6, height: 224.h ,
child: Swiper( child: Swiper(
viewportFraction: 0.95, viewportFraction: 0.95,
loop: false, loop: false,
physics: BouncingScrollPhysics(), physics: BouncingScrollPhysics(),
// index: (ranks != null && ranks.isNotEmpty) ? widget.arguments["rankLevel"] - 1 : 0,
controller: controller, controller: controller,
itemBuilder: (context, position) { itemBuilder: (context, position) {
// if(ranks == null || ranks.isEmpty) return Container(width: 10, height: 10,);
return MineVipView( return MineVipView(
position + 1, position + 1,
curLevel: widget.arguments["rankLevel"], curLevel: widget.arguments["rankLevel"],

287
lib/view_widget/mine_vip_view.dart

@ -92,170 +92,169 @@ class MineVipView extends StatelessWidget {
break; break;
} }
} }
return AspectRatio( return Container(
aspectRatio: 1.6, margin: EdgeInsets.fromLTRB(padding.w, 16.h, padding.w, 8.h),
child: Container( width: MediaQuery.of(context).size.width - 32.w,
margin: EdgeInsets.fromLTRB(padding.w, 16.h, padding.w, 8.h), height: 200.h,
decoration: BoxDecoration( decoration: BoxDecoration(
gradient: LinearGradient( gradient: LinearGradient(
colors: linearColor, colors: linearColor,
begin: Alignment.topLeft, begin: Alignment.topLeft,
end: Alignment.bottomRight, end: Alignment.bottomRight,
),
borderRadius: BorderRadius.circular(8),
boxShadow: [
BoxShadow(
color: Colors.black.withAlpha(12),
offset: Offset(0, 3),
blurRadius: 14,
spreadRadius: 0,
),
],
), ),
child: Column( borderRadius: BorderRadius.circular(8),
mainAxisAlignment: MainAxisAlignment.spaceBetween, boxShadow: [
children: [ BoxShadow(
Row( color: Colors.black.withAlpha(12),
mainAxisAlignment: MainAxisAlignment.spaceBetween, offset: Offset(0, 3),
children: [ blurRadius: 14,
Container( spreadRadius: 0,
height: 95.h, ),
child: Column( ],
mainAxisAlignment: MainAxisAlignment.spaceBetween, ),
crossAxisAlignment: CrossAxisAlignment.start, child: Column(
mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Container( Row(
padding: EdgeInsets.fromLTRB(9.w, 4.h, 8.w, 4.h), mainAxisAlignment: MainAxisAlignment.spaceBetween,
decoration: BoxDecoration( children: [
color: levelColor, Container(
borderRadius: BorderRadius.only( height: 95.h,
topLeft: Radius.circular(8), child: Column(
bottomRight: Radius.circular(8), mainAxisAlignment: MainAxisAlignment.spaceBetween,
), crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
children: [
Container(
padding: EdgeInsets.fromLTRB(9.w, 4.h, 8.w, 4.h),
decoration: BoxDecoration(
color: levelColor,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(8),
bottomRight: Radius.circular(8),
), ),
child: Text( ),
topLeft, child: Text(
style: TextStyle( topLeft,
fontSize: 12.sp, style: TextStyle(
fontWeight: FontWeight.bold, fontSize: 12.sp,
color: Colors.white, fontWeight: FontWeight.bold,
), color: Colors.white,
), ),
), ),
Container( ),
margin: EdgeInsets.only(left: 13.w), Container(
child: Text( margin: EdgeInsets.only(left: 13.w),
levelText, child: Text(
style: TextStyle( levelText,
color: textColor, style: TextStyle(
fontWeight: FontWeight.bold, color: textColor,
fontSize: 23.sp, fontWeight: FontWeight.bold,
), fontSize: 23.sp,
), ),
), ),
], ),
), ],
), ),
Container( ),
margin: EdgeInsets.only(right: 11.w, bottom: 9.h), Container(
child: Image.asset( margin: EdgeInsets.only(right: 11.w, bottom: 9.h),
"assets/image/icon_mine_huixiang_logo.png", child: Image.asset(
width: 86.w, "assets/image/icon_mine_huixiang_logo.png",
height: 86.h, width: 86.w,
fit: BoxFit.contain, height: 86.h,
), fit: BoxFit.contain,
), ),
], ),
), ],
Container( ),
margin: EdgeInsets.only(left: 13.w, right: 12.w, bottom: 12.h), Container(
child: Column( margin: EdgeInsets.only(left: 13.w, right: 12.w, bottom: 12.h),
children: [ child: Column(
Row( children: [
mainAxisAlignment: MainAxisAlignment.spaceBetween, Row(
crossAxisAlignment: CrossAxisAlignment.baseline, mainAxisAlignment: MainAxisAlignment.spaceBetween,
textBaseline: TextBaseline.alphabetic, crossAxisAlignment: CrossAxisAlignment.baseline,
children: [ textBaseline: TextBaseline.alphabetic,
Expanded( children: [
child: Text( Expanded(
rank > rankMax child: Text(
? S.of(context).dangqiandengji rank > rankMax
: "${S.of(context).jifen_(rankMax - rank)} ${S.of(context).daoxiayidengji}", ? S.of(context).dangqiandengji
overflow: TextOverflow.ellipsis, : "${S.of(context).jifen_(rankMax - rank)} ${S.of(context).daoxiayidengji}",
style: TextStyle( overflow: TextOverflow.ellipsis,
color: textColor, style: TextStyle(
fontWeight: FontWeight.w400, color: textColor,
fontSize: 14.sp, fontWeight: FontWeight.w400,
), fontSize: 14.sp,
), ),
flex: 1,
), ),
Text.rich( flex: 1,
TextSpan( ),
children: [ Text.rich(
TextSpan(
children: [
TextSpan(
text: "$rank",
style: TextStyle(
fontSize: 26.sp,
fontWeight: FontWeight.bold,
color: textColor,
),
),
if (rank <= rankMax)
TextSpan( TextSpan(
text: "$rank", // string
text: rankMax > 0 ? "/$rankMax" : "/0",
style: TextStyle( style: TextStyle(
fontSize: 26.sp, fontSize: 14.sp,
fontWeight: FontWeight.bold, fontWeight: FontWeight.w400,
color: textColor, color: textColor,
), ),
), ),
if (rank <= rankMax) ],
TextSpan(
// string
text: rankMax > 0 ? "/$rankMax" : "/0",
style: TextStyle(
fontSize: 14.sp,
fontWeight: FontWeight.w400,
color: textColor,
),
),
],
),
),
],
),
Container(
margin: EdgeInsets.only(top: 12.h, bottom: 12.h),
height: 8.h,
child: ClipRRect(
borderRadius: BorderRadius.circular(6.5),
child: LinearProgressIndicator(
value: rankMax > 0 ? rank / rankMax : 0,
backgroundColor: Colors.white,
color: levelColor,
), ),
), ),
],
),
Container(
margin: EdgeInsets.only(top: 12.h, bottom: 12.h),
height: 8.h,
child: ClipRRect(
borderRadius: BorderRadius.circular(6.5),
child: LinearProgressIndicator(
value: rankMax > 0 ? rank / rankMax : 0,
backgroundColor: Colors.white,
color: levelColor,
),
), ),
Row( ),
mainAxisAlignment: MainAxisAlignment.spaceBetween, Row(
crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ crossAxisAlignment: CrossAxisAlignment.center,
Text( children: [
S.of(context).kaitongriqi( Text(
(createTime != null && createTime != "") S.of(context).kaitongriqi(
? createTime.split(" ")[0] (createTime != null && createTime != "")
: "$createTime"), ? createTime.split(" ")[0]
style: TextStyle( : "$createTime"),
color: textColor, style: TextStyle(
fontWeight: FontWeight.w400, color: textColor,
fontSize: 12.sp, fontWeight: FontWeight.w400,
), fontSize: 12.sp,
),
Icon(
Icons.qr_code,
size: 24,
color: Colors.white,
), ),
], ),
), Icon(
], Icons.qr_code,
), size: 24,
color: Colors.white,
),
],
),
],
), ),
], ),
), ],
), ),
); );
} }

Loading…
Cancel
Save