Flutter TextButton + ButtonStyle使用

Widget _itemText(String txt, {Function()? onPress}) {
    //需要使用SizedBox限制TextButton高度
    return SizedBox(
      height: 20,
      width: 44,
      child: TextButton(
        onPressed: onPress,
        style: ButtonStyle(
            padding: MaterialStateProperty.all(EdgeInsets.zero),
            //这个style设置的color不生效,要设置foregroundColor
            textStyle: MaterialStateProperty.all(const TextStyle(
              color: Colors.white,
              fontSize: 12,
            )),
            //取消圆角边框
            shape: MaterialStateProperty.all(
                const RoundedRectangleBorder(borderRadius: BorderRadius.zero)),
            foregroundColor: MaterialStateProperty.all(Colors.white),
            backgroundColor: MaterialStateProperty.resolveWith((state) {
              if (state.contains(MaterialState.pressed)) {
                //背景颜色按下时
                return Colors.white.withOpacity(0.1);
              }
              return null;
            }),
            //水波纹效果
            overlayColor:
                MaterialStateProperty.all(Colors.white.withOpacity(0.1))),
        child: Text(
          txt,
        ),
      ),
    );
  }

  

posted @ 2023-02-20 15:28  bg_不够  阅读(404)  评论(0编辑  收藏  举报