| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- import 'dart:ui';
- import 'package:flutter/material.dart';
- import 'package:flutter/services.dart';
- import 'package:flutter_screenutil/flutter_screenutil.dart';
- import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
- import 'package:keyboard/resource/string.gen.dart';
- import 'package:keyboard/utils/toast_util.dart';
- import '../resource/assets.gen.dart';
- import '../resource/colors.gen.dart';
- import '../utils/styles.dart';
- class CustomLabelDialog {
- static const String tag = 'CustomLabelDialog';
- static void show({
- required Function(String) clickCallback,
- required String hintText,
- required int maxLength,
- }) {
- TextEditingController textController = TextEditingController();
- SmartDialog.show(
- tag: tag,
- backType: SmartBackType.block,
- clickMaskDismiss: true,
- maskColor: ColorName.black70,
- builder: (_) {
- return Scaffold(
- backgroundColor: Colors.transparent,
- body: Column(
- crossAxisAlignment: CrossAxisAlignment.center,
- mainAxisAlignment: MainAxisAlignment.center,
- children: [Container(
- width: double.infinity,
- margin: EdgeInsets.symmetric(horizontal: 31.w),
- decoration: ShapeDecoration(
- color: Colors.white,
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(20.r),
- ),
- ),
- child: Stack(
- children: [
- Container(
- padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 24.h),
- child: Column(
- mainAxisSize: MainAxisSize.min,
- crossAxisAlignment: CrossAxisAlignment.center,
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- Text(
- StringName.customLabel,
- style: TextStyle(
- color: Colors.black.withAlpha(204),
- fontSize: 16.sp,
- fontWeight: FontWeight.w500,
- ),
- ),
- SizedBox(height: 16.h),
- Container(
- height: 48.h,
- alignment: Alignment.center,
- decoration: ShapeDecoration(
- color: const Color(0xFFF5F4F9),
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(31.r),
- ),
- ),
- child: TextField(
- controller: textController,
- // maxLength: maxLength,
- maxLines: null,
- expands: true,
- textAlign: TextAlign.center,
- textAlignVertical: TextAlignVertical.center,
- decoration: InputDecoration(
- counterText: "",
- hintText: hintText,
- hintStyle: TextStyle(
- color: Colors.black.withAlpha(66),
- ),
- border: OutlineInputBorder(
- borderRadius: BorderRadius.circular(10.r),
- borderSide: BorderSide.none, // 移除边框线
- ),
- filled: true,
- fillColor: const Color(0xFFF5F4F9),
- ),
- ),
- ),
- SizedBox(height: 24.h),
- Container(
- height: 48.h,
- width: double.infinity,
- decoration: Styles.getActivateButtonDecoration(31.r),
- child: TextButton(
- onPressed: () {
- if (textController.text.isEmpty) {
- return ToastUtil.show(hintText);
- }
- if (textController.text.length > maxLength) {
- return ToastUtil.show('最多$maxLength个字哦~');
- }
- clickCallback(textController.text.trim());
- SmartDialog.dismiss();
- },
- child: Text(
- StringName.customLabelSave,
- style: TextStyle(
- color: Colors.white,
- fontSize: 16.sp,
- fontWeight: FontWeight.w500,
- ),
- ),
- ),
- ),
- ],
- ),
- ),
- Positioned(
- right: 14,
- top: 14,
- child: GestureDetector(
- onTap: () {
- SmartDialog.dismiss();
- },
- child: Assets.images.iconCustomDialogClose.image(
- width: 24.w,
- height: 24.h,
- ),
- ),
- ),
- ],
- ),
- ),]
- ));
- },
- );
- }
- }
|