首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FLutter:列中的FittedBox文本小部件

FLutter:列中的FittedBox文本小部件
EN

Stack Overflow用户
提问于 2022-02-12 11:43:56
回答 1查看 564关注 0票数 0

我有一个Column小部件,它包含Text小部件作为其子部件。第二,列小部件中的Text小部件应该根据屏幕大小动态调整fontSize,使其只需一行。它尝试将Text小部件包装在FittedBox中。

代码语言:javascript
复制
Container(
  color: AppColors.hintBG,
  width: double.infinity,
  child: Padding(
    padding: const EdgeInsets.symmetric(
      vertical: AppDimens.VrPadding, 
      horizontal: AppDimens.HrPadding / 2
    ),
    child: Column(
      crossAxisAlignment: CrossAxisAlignment.stretch,
      children: [
        Text(
          getRate(state.selectedSlot),
          style: context.textTheme.headline5,
        ),
        FittedBox(
          child: Text(
            getTime(state.selectedSlot),
            style: context.textTheme.subtitle1,
            textAlign: TextAlign.center,
          ),
        ),
      ],
    ),
  ),
)

但它在列内不起作用。我搞错了:

代码语言:javascript
复制
======== Exception caught by rendering library =====================================================
The following assertion was thrown during performLayout():
'package:flutter/src/rendering/object.dart': Failed assertion: line 1785 pos 12: '!_debugDoingThisLayout': is not true.


Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

The relevant error-causing widget was: 
  Stack Stack:file:///Users/sarath/StudioProjects/astrog/lib/screens/booking/consultation_book_slot_step1.dart:69:14
When the exception was thrown, this was the stack: 
#2      RenderObject.layout (package:flutter/src/rendering/object.dart:1785:12)
#3      RenderStack.layoutPositionedChild (package:flutter/src/rendering/stack.dart:497:11)
#4      RenderStack.performLayout (package:flutter/src/rendering/stack.dart:610:30)
#5      RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#6      RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:277:14)
#7      RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#8      MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
#9      _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1097:7)
#10     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
#11     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:404:14)
#12     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#13     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#14     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#15     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#16     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1388:11)
#17     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#18     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#19     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#20     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#21     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#22     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#23     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#24     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#25     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#26     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#27     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#28     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#29     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#30     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#31     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#32     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#33     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#34     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#35     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3422:13)
#36     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#37     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#38     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#39     _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:745:15)
#40     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#41     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#42     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#43     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#44     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#45     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#46     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#47     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:56:11)
#48     RenderStack._computeSize (package:flutter/src/rendering/stack.dart:570:43)
#49     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:597:12)
#50     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#51     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#52     RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:545:11)
#53     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#54     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#55     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#56     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#57     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#58     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#59     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#60     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#61     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#62     RenderView.performLayout (package:flutter/src/rendering/view.dart:165:14)
#63     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1713:7)
#64     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:885:18)
#65     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:453:19)
#66     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
#67     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
#68     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
#69     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
#70     SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:863:7)
(elided 6 frames from class _AssertionError, class _RawReceivePortImpl, class _Timer, and dart:async-patch)
The following RenderObject was being processed when the exception was fired: RenderStack#dcea9 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...  needs compositing
...  parentData: <none> (can use size)
...  constraints: BoxConstraints(0.0<=w<=320.0, h=584.0)
...  size: Size(320.0, 584.0)
...  alignment: AlignmentDirectional.topStart
...  textDirection: ltr
...  fit: loose
RenderObject: RenderStack#dcea9 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
  needs compositing
  parentData: <none> (can use size)
  constraints: BoxConstraints(0.0<=w<=320.0, h=584.0)
  size: Size(320.0, 584.0)
  alignment: AlignmentDirectional.topStart
  textDirection: ltr
  fit: loose
...  child 1: RenderFlex#b4631 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...    needs compositing
...    parentData: not positioned; offset=Offset(0.0, 0.0) (can use size)
...    constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=584.0)
...    size: Size(320.0, 584.0)
...    direction: vertical
...    mainAxisAlignment: start
...    mainAxisSize: max
...    crossAxisAlignment: center
...    verticalDirection: down
...    child 1: RenderConstrainedBox#e9e18 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      parentData: offset=Offset(160.0, 0.0); flex=null; fit=null (can use size)
...      constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=Infinity)
...      size: Size(0.0, 16.0)
...      additionalConstraints: BoxConstraints(0.0<=w<=Infinity, h=16.0)
...    child 2: RenderPadding#470da relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      parentData: offset=Offset(0.0, 16.0); flex=null; fit=null (can use size)
...      constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=Infinity)
...      size: Size(320.0, 69.0)
...      padding: EdgeInsets(32.0, 0.0, 20.0, 0.0)
...      textDirection: ltr
...      child: RenderFlex#39cb4 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...        parentData: offset=Offset(32.0, 0.0) (can use size)
...        constraints: BoxConstraints(0.0<=w<=268.0, 0.0<=h<=Infinity)
...        size: Size(268.0, 69.0)
...        direction: horizontal
...        mainAxisAlignment: start
...        mainAxisSize: max
...        crossAxisAlignment: start
...        textDirection: ltr
...        verticalDirection: down
...        child 1: RenderSemanticsAnnotations#4bdda relayoutBoundary=up6 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size)
...          constraints: BoxConstraints(unconstrained)
...          size: Size(24.0, 24.0)
...        child 2: RenderConstrainedBox#cdf9c relayoutBoundary=up6 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          parentData: offset=Offset(24.0, 0.0); flex=null; fit=null (can use size)
...          constraints: BoxConstraints(unconstrained)
...          size: Size(16.0, 0.0)
...          additionalConstraints: BoxConstraints(w=16.0, 0.0<=h<=Infinity)
...        child 3: RenderParagraph#31531 relayoutBoundary=up6 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          parentData: offset=Offset(40.0, 0.0); flex=1; fit=FlexFit.tight (can use size)
...          constraints: BoxConstraints(w=228.0, 0.0<=h<=Infinity)
...          size: Size(228.0, 69.0)
...          textAlign: start
...          textDirection: ltr
...          softWrap: wrapping at box width
...          overflow: clip
...          textScaleFactor: 1.3
...          locale: en
...          maxLines: unlimited
...    child 3: RenderConstrainedBox#3dd41 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      parentData: offset=Offset(160.0, 85.0); flex=null; fit=null (can use size)
...      constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=Infinity)
...      size: Size(0.0, 16.0)
...      additionalConstraints: BoxConstraints(0.0<=w<=Infinity, h=16.0)
...    child 4: RenderConstrainedBox#824e1 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      parentData: offset=Offset(0.0, 101.0); flex=null; fit=null (can use size)
...      constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=Infinity)
...      size: Size(320.0, 16.0)
...      additionalConstraints: BoxConstraints(0.0<=w<=Infinity, h=16.0)
...      child: RenderPositionedBox#60ff0 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...        parentData: <none> (can use size)
...        constraints: BoxConstraints(0.0<=w<=320.0, h=16.0)
...        size: Size(320.0, 16.0)
...        alignment: Alignment.center
...        textDirection: ltr
...        widthFactor: expand
...        heightFactor: expand
...        child: RenderPadding#64ac5 relayoutBoundary=up6 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          parentData: offset=Offset(0.0, 0.0) (can use size)
...          constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=16.0)
...          size: Size(320.0, 16.0)
...          padding: EdgeInsets.zero
...          textDirection: ltr
...    child 5: RenderFlex#f3138 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      needs compositing
...      parentData: offset=Offset(0.0, 117.0); flex=null; fit=null (can use size)
...      constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=Infinity)
...      size: Size(320.0, 152.0)
...      direction: vertical
...      mainAxisAlignment: start
...      mainAxisSize: max
...      crossAxisAlignment: center
...      verticalDirection: down
...      child 1: RenderPadding#8a223 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...        parentData: offset=Offset(0.0, 0.0); flex=null; fit=null (can use size)
...        constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=Infinity)
...        size: Size(320.0, 64.0)
...        padding: EdgeInsets.zero
...        textDirection: ltr
...        child: RenderDecoratedBox#300ee relayoutBoundary=up6 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          parentData: offset=Offset(0.0, 0.0) (can use size)
...          constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=Infinity)
...          size: Size(320.0, 64.0)
...          decoration: BoxDecoration
...          configuration: ImageConfiguration(bundle: PlatformAssetBundle#c08f0(), devicePixelRatio: 3.4, locale: en, textDirection: TextDirection.ltr, platform: android)
...      child 2: _RenderLayoutBuilder#023a3 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...        needs compositing
...        parentData: offset=Offset(0.0, 64.0); flex=0; fit=FlexFit.loose (can use size)
...        constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=Infinity)
...        size: Size(320.0, 88.0)
...        child: RenderSemanticsGestureHandler#2bb42 relayoutBoundary=up6 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          needs compositing
...          parentData: offset=Offset(0.0, 0.0) (can use size)
...          constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=Infinity)
...          size: Size(320.0, 88.0)
...          behavior: deferToChild
...          gestures: vertical scroll
...    child 6: RenderConstrainedBox#332da relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      parentData: offset=Offset(160.0, 269.0); flex=null; fit=null (can use size)
...      constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=Infinity)
...      size: Size(0.0, 12.0)
...      additionalConstraints: BoxConstraints(0.0<=w<=Infinity, h=12.0)
...    child 7: RenderConstrainedBox#3d77f relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      parentData: offset=Offset(0.0, 281.0); flex=null; fit=null (can use size)
...      constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=Infinity)
...      size: Size(320.0, 16.0)
...      additionalConstraints: BoxConstraints(0.0<=w<=Infinity, h=16.0)
...      child: RenderPositionedBox#d3445 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...        parentData: <none> (can use size)
...        constraints: BoxConstraints(0.0<=w<=320.0, h=16.0)
...        size: Size(320.0, 16.0)
...        alignment: Alignment.center
...        textDirection: ltr
...        widthFactor: expand
...        heightFactor: expand
...        child: RenderPadding#5dcf1 relayoutBoundary=up6 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          parentData: offset=Offset(0.0, 8.0) (can use size)
...          constraints: BoxConstraints(0.0<=w<=320.0, 0.0<=h<=16.0)
...          size: Size(320.0, 0.0)
...          padding: EdgeInsets.zero
...          textDirection: ltr
...    child 8: RenderRepaintBoundary#6f3d6 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      needs compositing
...      parentData: offset=Offset(0.0, 297.0); flex=1; fit=FlexFit.tight (can use size)
...      constraints: BoxConstraints(0.0<=w<=320.0, h=287.0)
...      layer: OffsetLayer#92b04
...        engine layer: OffsetEngineLayer#b0ee8
...        handles: 2
...        offset: Offset(0.0, 393.3)
...      size: Size(320.0, 287.0)
...      metrics: 0.0% useful (1 bad vs 0 good)
...      diagnosis: insufficient data to draw conclusion (less than five repaints)
...      child: RenderCustomPaint#eee2d relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...        needs compositing
...        parentData: <none> (can use size)
...        constraints: BoxConstraints(0.0<=w<=320.0, h=287.0)
...        size: Size(320.0, 287.0)
...        child: RenderRepaintBoundary#f3933 relayoutBoundary=up6 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          needs compositing
...          parentData: <none> (can use size)
...          constraints: BoxConstraints(0.0<=w<=320.0, h=287.0)
...          layer: OffsetLayer#6337d
...            engine layer: OffsetEngineLayer#7a705
...            handles: 2
...            offset: Offset(0.0, 0.0)
...          size: Size(320.0, 287.0)
...          metrics: 0.0% useful (1 bad vs 0 good)
...          diagnosis: insufficient data to draw conclusion (less than five repaints)
...  child 2: RenderPhysicalModel#2fcca relayoutBoundary=up3 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...    needs compositing
...    parentData: right=0.0; bottom=0.0; left=0.0; offset=Offset(0.0, 0.0) (can use size)
...    constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
...    size: MISSING
...    elevation: 11.5
...    color: Color(0xffffffff)
...    shadowColor: Color(0xffffffff)
...    shape: BoxShape.rectangle
...    borderRadius: BorderRadius.zero
...    child: _RenderInkFeatures#2570b relayoutBoundary=up4 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...      needs compositing
...      parentData: <none> (can use size)
...      constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
...      size: MISSING
...      child: RenderPadding#77952 relayoutBoundary=up5 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...        needs compositing
...        parentData: <none> (can use size)
...        constraints: BoxConstraints(w=320.0, 0.0<=h<=Infinity)
...        size: MISSING
...        padding: EdgeInsets.all(20.0)
...        textDirection: ltr
...        child: RenderFlex#0c5d9 relayoutBoundary=up6 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
...          needs compositing
...          parentData: offset=Offset(20.0, 20.0) (can use size)
...          constraints: BoxConstraints(w=280.0, 0.0<=h<=Infinity)
...          size: MISSING
...          direction: horizontal
...          mainAxisAlignment: center
...          mainAxisSize: max
...          crossAxisAlignment: center
...          textDirection: ltr
...          verticalDirection: down
====================================================================================================
======== Exception caught by rendering library =====================================================
The following assertion was thrown during performLayout():
'package:flutter/src/rendering/object.dart': Failed assertion: line 1785 pos 12: '!_debugDoingThisLayout': is not true.


Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
  https://github.com/flutter/flutter/issues/new?template=2_bug.md

The relevant error-causing widget was: 
  Stack Stack:file:///Users/sarath/StudioProjects/astrog/lib/screens/booking/consultation_book_slot_step1.dart:69:14
When the exception was thrown, this was the stack: 
#2      RenderObject.layout (package:flutter/src/rendering/object.dart:1785:12)
#3      RenderStack.layoutPositionedChild (package:flutter/src/rendering/stack.dart:497:11)

编辑:

代码语言:javascript
复制
class _BottomBar extends StatelessWidget {
  final AstrologerDetails details;

  const _BottomBar(this.details, {Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Material(
      elevation: 11.5,
      color: Theme.of(context).scaffoldBackgroundColor,
      child: Padding(
        padding: EdgeInsets.all(AppDimens.MainPaddingLong),
        child: Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Expanded(child: _Rate()),
            Expanded(child: _BookButton(details)),
          ],
        ),
      ),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return BlocBuilder<ConsultantSlotsBloc, ConsultantSlotsState>(
      builder: (_, state) {
        return Container(
          color: AppColors.hintBG,
          width: double.infinity,
          child: Padding(
            padding: const EdgeInsets.symmetric(
                vertical: 4, horizontal: AppDimens.HrPadding / 2),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: [
                Text(
                  getRate(state.selectedSlot),
                  style: context.textTheme.headline5,
                  textAlign: TextAlign.center,
                ),
                FittedBox(
                  child: Text(
                    getTime(state.selectedSlot),
                    style: context.textTheme.subtitle1,
                    textAlign: TextAlign.center,
                  ),
                ),
              ],
            ),
          ),
        );
      },
    );
  }

  String getRate(Slot? slot) {
    if (slot == null) {
      return '';
    }
    return '${UniCodes.RupeeSymbol} ${slot.rate}';
  }

  String getTime(Slot? slot) {
    if (slot == null) {
      return '';
    }
    final fmt = DateFormats.timeOnly;
    return '${fmt.format(slot.startTime.toLocal())} - ${fmt.format(slot.endTime.toLocal())}';
  }
}

class _BookButton extends StatelessWidget {
  final AstrologerDetails details;

  const _BookButton(this.details, {Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return BlocBuilder<ConsultantSlotsBloc, ConsultantSlotsState>(
      builder: (_, state) {
        return OutlinedButton(
          style: AppStyles.outlinedButtonSharp,
          child: FittedBox(
            child: Text(
              context.T.bookSlot.toUpperCase(),
              textAlign: TextAlign.center,
            ),
          ),
          onPressed: () {
            if (state.selectedSlot != null) {
              Navigator.pushNamed(context, ConsultationBookSlotStep2.routeName,
                  arguments: [details, state.selectedSlot!]).then((value) {
                final bloc = context.read<ConsultantSlotsBloc>();
                context
                    .read<ConsultantSlotsBloc>()
                    .add(SilentFetch(bloc.state.selectedDate, inMemory: false));
              });
            } else {
              App.showOkToDismissSnackBar(context.T.noSlotSelected);
            }
          },
        );
      },
    );
  }
}
EN

回答 1

Stack Overflow用户

发布于 2022-02-12 14:35:23

试试这个:

代码语言:javascript
复制
Text(
  "text",
  style: TextStyle(
    // MediaQuery.of(context).size.width is the width from the screen
    fontSize: MediaQuery.of(context).size.width * 0.001,
    ...
  ),
),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71091559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档