如何在卡片小部件中显示孩子,其中一个孩子是 fl 条形图?

问题描述

这是当我运行 Flutter run 命令时出现在我的终端上的错误。如何在一张卡片内有两个孩子而不溢出或将其大小扩展到无穷大?

The following RenderObject was being processed when the exception was fired: RenderBarChart#947f3 relayoutBoundary=up24
NEEDS-LAYOUT NEEDS-PAINT:
  creator: BarChartLeaf ← Listener ← _GestureSemantics ← RawGestureDetector ← GestureDetector ←
    BarChart ← BarChartWidget ← RepaintBoundary ← IndexedSemantics ←
    NotificationListener<KeepAliveNotification> ← KeepAlive ← AutomaticKeepAlive ← ⋯
  parentData: <none> (can use size)
  constraints: BoxConstraints(w=376.0,0.0<=h<=Infinity)
  size: Size(376.0,Infinity)
This RenderObject has no descendants.

//代码

Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(15),child: Card(
        shadowColor: Colors.red,elevation: 20,shape: RoundedRectangleBorder(
          borderRadius: BorderRadius.circular(8),),color: Color(0xff240046),child: ListView(
          shrinkWrap: true,children: [
            BarChartWidget(),Text("Demo"),],);

我也试过 SingleChildScrollView,但不行

这是我用来构建颤振图的代码

Widget build(BuildContext context) {
    return BarChart(BarChartData(
        axisTitleData: FlAxisTitleData(
          show: true,leftTitle: AxisTitle(
            titleText: "Interest Rate",showTitle: true,textStyle: TextStyle(fontSize: 15,color: Colors.white),bottomTitle: AxisTitle(
            titleText: "Banks",titlesData: FlTitlesData(
          bottomTitles: BarTitles.getBottomTitles(),leftTitles: BarTitles.getLeftTitles(),gridData: FlGridData(checkToShowHorizontalLine: (value) {
          return value % BarData.interval == 0;
        },getDrawingHorizontalLine: (value) {
          return FlLine(
            color: Colors.white,strokeWidth: 0.5,);
        }),minY: 0,maxY: 10,groupsspace: 5,barGroups: BarData.barData.map((data) {
          return BarChartGroupData(x: data.id,barRods: [
            BarChartRodData(
              borderRadius: BorderRadius.only(
                topLeft: Radius.circular(5),topRight: Radius.circular(5),y: data.y,width: 20,colors: [data.color],]);
        }).toList()));
  }

解决方法

如果能看到你BarChartWidget() 课会更好。

为什么不用一个 Expanded() 小部件包裹起来看看。

ListView(
  children: [
    Expanded(
      child: Column( 
        children: [
          BarChartWidget(),Text("Demo"),],),

SingleChildScrollView(
  child: 
    Expanded(
      child: Column( 
        children: [
          BarChartWidget(),

这是您收到错误的原因: ‘Vertical viewport was given unbounded height’

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...