yb_flutter_lib_ui 0.0.2+20 copy "yb_flutter_lib_ui: ^0.0.2+20" to clipboard
yb_flutter_lib_ui: ^0.0.2+20 copied to clipboard

flutter quick ui lib, like button、text、image、redCount、bg_decoration...

example/lib/main.dart

import 'package:api_repository/api_repository.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:yb_flutter_lib_ui/appbar/yb_appbar.dart';
import 'package:yb_flutter_lib_ui/button/common_button.dart';
import 'package:yb_flutter_lib_ui/checkbox/checkbox_common_widget.dart';
import 'package:yb_flutter_lib_ui/common_radio.dart';
import 'package:yb_flutter_lib_ui/common_textfield.dart';
import 'package:yb_flutter_lib_ui/list_item/common_list_item.dart';
import 'package:yb_flutter_lib_ui/style/common_style.dart';
import 'package:yb_flutter_lib_ui/text/widget_text.dart';
import 'package:yb_flutter_lib_ui/toast/toast_util.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return const MainPage();
  }
}

class MainPage extends StatefulWidget {
  const MainPage({Key? key}) : super(key: key);

  @override
  State<StatefulWidget> createState() {
    return _MainPageState();
  }
}

class _MainPageState extends State<MainPage> {
  final TextEditingController _textEditingController = TextEditingController();

  // CountdownController countdownController = CountdownController();
  List<String> names = ['文本', '按钮', '输入框', '列表项', '单选', '多选项', '分割线', '边框'];

  @override
  void initState() {
    super.initState();
  }

  @override
  void dispose() {
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return ScreenUtilInit(
        designSize: const Size(375, 812),
        builder: (child) => MaterialApp(builder: (context, widget) {
              return _homePage();
            }));
  }

  Widget _homePage() {
    return Scaffold(
      appBar: YBAppBar.titleAppbar(title: '首页', context: context),
      body: Container(
          padding: const EdgeInsets.only(left: 8, right: 8, bottom: 8),
          child: ListView.separated(
            itemCount: names.length,
            separatorBuilder: (BuildContext context, int index) {
              return Container(
                height: 20,
              );
            },
            itemBuilder: (BuildContext context, int index) {
              return Column(
                children: [
                  Text(
                    names[index],
                    style: CommonTextStyle.commonStyle(fontSize: 22),
                  ),
                  _content(index),
                ],
              );
            },
          )),
    );
  }

  _content(int index) {
    List<String> names = ['文本', '按钮', '输入框', '列表项', '单选', '多选项', '分割线', '边框'];
    if (index == 0) {
      return Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          WidgetText.getTextNormal(
              text: '文本', color: Colors.black, fontSize: 10),
          WidgetText.getTextNormal(text: '文本', color: Colors.red, fontSize: 12),
          WidgetText.getTextNormal(
              text: '文本', color: Colors.black, fontSize: 18),
          WidgetText.getTextNormal(
              text:
                  '多行文本多行文本多行文本多行文本多行文本多行文本多行文本多行文本多行文本多行文本多行文本多行文本多行文本多行文本多行文本',
              color: Colors.black,
              fontSize: 16,
              maxLines: 2),
        ],
      );
    } else if (index == 1) {
      return Column(
        children: [
          CommonButton.commonButton(
              text: '普通按钮',
              buttonTextStyle: const TextStyle(fontSize: 14),
              onTap: () => ToastUtil.show('边框按钮')),
          CommonButton.redBorderButton(
              title: '点击', onTap: () => ToastUtil.show('普通按钮')),
        ],
      );
    } else if (index == 2) {
      return Column(children: [
        CommonTextField(
            controller: _textEditingController, height: 44, width: 300)
      ]);
    } else if (index == 3) {
      return Column(children: [
        CommonListItem.listItem(
            text: '输入标题', controller: _textEditingController, hint: '请输入'),
        CommonListItem.listItemOnlyTextFiled(
            text: '请输入', controller: _textEditingController),
        // CommonListItem.listItemValidateCode(
        //     controller: _textEditingController,
        //     countdownController: countdownController,
        //     countSecond: countSecond,
        //     validateCallBack: () {},
        //     onFinish: () {},
        //     buildCallBack: (time) {}),
        CommonListItem.listItemWithCheckBox(
            first: true,
            second: false,
            firstCallBack: (result) {},
            secondCallBack: (result) {}),
        CommonListItem.listItemWithRadio(1),
        CommonListItem.listItemWithSwitch(onToggle: (result) {}),
        CommonListItem.listItemWithIcon(
            leftIcon: CommonImages.addMedicineIcon, title: '选项'),
        CommonListItem.listItemWithSubTitleInBottom(
            title: '主标题', subTitle: '副标题'),
        CommonListItem.listItemWithTitleAndSub(text: '主标题', hint: '副标题'),
        CommonListItem.listItemWithSelect(text: '请选择'),
      ]);
    } else if (index == 4) {
      return Column(
        children: const [
          CommonRadio(groupValue: 0, value: 1, title: '选项一'),
          CommonRadio(groupValue: 1, value: 1, title: '选项二'),
        ],
      );
    } else if (index == 5) {
      return Row(
        children: [
          const SizedBox(
            width: 50,
          ),
          CheckBoxCommonWidget(onClickCallback: () {}),
          const Text('选项一'),
          const SizedBox(
            width: 50,
          ),
          CheckBoxCommonWidget(onClickCallback: () {}),
          const Text('选项二'),
          const SizedBox(
            width: 50,
          ),
          CheckBoxCommonWidget(defaultSelected: true, onClickCallback: () {}),
          const Text('选项三'),
        ],
      );
    } else if (index == 6) {
      return Column(
        children: [CommonDivider.commonDivider()],
      );
    } else if (index == 7) {
      return Column(
        children: [
          Container(
            height: 40,
            decoration:
                CommonDecoration.containerDecoration(borderColor: Colors.red),
          )
        ],
      );
    }

    return Column(
      children: [],
    );
  }
}