Flutter怎么自定义一个“控件”

Flutter如果自定义一个“控件”?如何使用?
比如我要写一个控件继承之前有的功能,并加上自己的功能。

class XGestureDetector extends StatelessWidget {
  const XGestureDetector({Key? key, this.onTap, this.child}) : super(key: key);

  final Function? onTap;
  final Widget? child;

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () async {
        DialogUtils.showPrivacyDialog(context, showCallback: (value) {
          if (value) {

          } else {
            if (onTap != null) {
              onTap!();
            }
          }
        });
      },
      child: child,
    );
  }
}

class SearchWidget extends StatelessWidget {
  UnitList data;
  int? index;

  SearchWidget({Key? key, required this.data, this.index}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
        child: XGestureDetector(
          onTap: () {
            RouterUtil.pushToWeb(data.repeatUrl);
          },
          child: Container(
            padding: EdgeInsets.only(left: 10),
            height: 30,
            decoration: const BoxDecoration(
              color: ColorConfig.COLOR_BG_1,
              borderRadius: BorderRadius.all(Radius.circular(25)),
            ),
            child: Row(
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [
                const Icon(
                  Icons.search,
                  color: ColorConfig.COLOR_TEXT_1,
                  size: 15,
                ),
                UIText(
                  data.tagName ?? "",
                  textColor: ColorConfig.COLOR_TEXT_1,
                )
              ],
            ),
          ),
        ));
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容