You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
3.3 KiB
124 lines
3.3 KiB
import 'dart:ui'; |
|
|
|
import 'package:flutter/cupertino.dart'; |
|
import 'package:flutter/material.dart'; |
|
import 'package:flutter/widgets.dart'; |
|
import 'package:flutter_screenutil/flutter_screenutil.dart'; |
|
|
|
class ItemTitle extends StatelessWidget { |
|
final String text; |
|
final String imgPath; |
|
final int moreType; |
|
|
|
final String moreText; |
|
final List<DropdownMenuItem<String>> items; |
|
|
|
ItemTitle({ |
|
this.text, |
|
this.imgPath = "", |
|
this.moreText = "", |
|
this.moreType = 0, |
|
this.items, |
|
this.onChanged, |
|
this.onTap, |
|
}); |
|
|
|
@override |
|
Widget build(BuildContext context) { |
|
return Container( |
|
margin: EdgeInsets.only( |
|
left: 16.w, |
|
right: 17.w, |
|
), |
|
alignment: Alignment.center, |
|
child: Row( |
|
mainAxisAlignment: MainAxisAlignment.spaceBetween, |
|
crossAxisAlignment: CrossAxisAlignment.center, |
|
children: [ |
|
Row( |
|
mainAxisAlignment: MainAxisAlignment.center, |
|
crossAxisAlignment: CrossAxisAlignment.center, |
|
mainAxisSize: MainAxisSize.min, |
|
children: [ |
|
Text( |
|
text, |
|
textAlign: TextAlign.center, |
|
style: TextStyle( |
|
color: Color(0xFF0D0D0D), |
|
fontSize: 15.sp, |
|
fontWeight: FontWeight.bold, |
|
), |
|
), |
|
SizedBox( |
|
width: 8.w, |
|
), |
|
if(imgPath != "") |
|
Image.asset( |
|
imgPath, |
|
width: 24.w, |
|
height: 24.h, |
|
), |
|
], |
|
), |
|
if (moreText != "") buildMore() |
|
], |
|
), |
|
); |
|
} |
|
|
|
final GestureTapCallback onTap; |
|
final Function(String) onChanged; |
|
|
|
Widget buildMore() { |
|
return moreType == 0 |
|
? GestureDetector( |
|
onTap: onTap, |
|
child: Container( |
|
padding: EdgeInsets.only( |
|
left: 8.w, |
|
right: 8.w, |
|
top: 2.h, |
|
bottom: 2.h, |
|
), |
|
decoration: BoxDecoration( |
|
color: Colors.white, |
|
boxShadow: [ |
|
BoxShadow( |
|
color: Colors.black.withAlpha(25), |
|
offset: Offset(0, 1), |
|
blurRadius: 12, |
|
spreadRadius: 0, |
|
), |
|
], |
|
borderRadius: BorderRadius.circular(2), |
|
), |
|
child: Row( |
|
children: [ |
|
Text( |
|
moreText, |
|
style: TextStyle( |
|
fontSize: 12.sp, |
|
fontWeight: FontWeight.w400, |
|
), |
|
), |
|
Icon( |
|
moreType == 0 |
|
? Icons.keyboard_arrow_right |
|
: Icons.keyboard_arrow_down, |
|
size: 16, |
|
), |
|
], |
|
), |
|
), |
|
) |
|
: Container( |
|
padding: EdgeInsets.only(left: 10.w, right: 10.w), |
|
child: DropdownButton( |
|
items: items, |
|
value: moreText, |
|
onChanged: onChanged, |
|
underline: Container(color: Colors.transparent), |
|
), |
|
); |
|
} |
|
}
|
|
|