Home > Mobile >  Padding inside the button
Padding inside the button

Time:08-16

Is there any way to use padding as a parameter inside the primary button? while doing so i don't have to use the padding widget anymore and i can choose the padding: EdgeInsets.symmetric( horizontal:small/medium or large),

Here is my button class:

class SdPrimaryButton extends ElevatedButton {
SdPrimaryButton({
required String title,
required VoidCallback? onPressed,
// required Padding padding,
VoidCallback? onLongPress,
Key? key,
}) : super(
      key: key,
      onPressed: onPressed,
      onLongPress: onLongPress,
      style: ElevatedButton.styleFrom(),
      child: Text(title),
    );
}

Here is the default case: As you can see every time when I have to use my button I have to define the padding widget to achieve the required result. Is there any way that I can call my button and define the padding inside the button and achieve the same result by setting the padding value as small medium or large?

  Padding(
          padding: const EdgeInsets.symmetric(
          horizontal: medium * 2),
          child: SizedBox(
          width: double.infinity,
           child: SdPrimaryButton(
                  title: appLocalizations.labelContinue,
                  onPressed: () {
                              if (widget.checkValidation()) {
                                widget.pageController!.nextPage(
                                    duration:
                                        const Duration(milliseconds: 500),
                                    curve: Curves.easeInOut);
                                _scrollToTop();
                              }
                            },
                          ),
                        ),
                      ),

CodePudding user response:

You can pass padding style: ElevatedButton.styleFrom(

enum PaddingState {
  small(10),
  medium(20),
  large(30);

  final double value;
  const PaddingState(this.value);
}

class SdPrimaryButton extends ElevatedButton {
  SdPrimaryButton({
    required String title,
    required VoidCallback? onPressed,
    VoidCallback? onLongPress,
    PaddingState padding = PaddingState.medium,
    Key? key,
  }) : super(
          key: key,
          onPressed: onPressed,
          onLongPress: onLongPress,
          style: ElevatedButton.styleFrom(
              padding: EdgeInsets.symmetric(horizontal: padding.value * 2)),
          child: Text(title),
        );
}
  • Related