0

How can i avoid overlapping of the x-axis data and the overlapping tooltip values, i tried reducing the font but that didnt work.For tooltip i wanted to show only maximum value,and other values only when the user clicks on it. BarChart( BarChartData( barTouchData: barTouchData, titlesData: titlesData, borderData: borderData, barGroups: barGroups, gridData: FlGridData(show: false), alignment: BarChartAlignment.spaceAround, minY: 0, maxY: double.parse((y! + 1000).toString()),

        //double.parse(widget.total.toString()),
      ),
    );
  }

  BarTouchData get barTouchData => BarTouchData(
        enabled: true,
        touchTooltipData: BarTouchTooltipData(
          tooltipBgColor: Colors.transparent,
          tooltipPadding: EdgeInsets.zero,
          tooltipMargin: 5,
          getTooltipItem: (
            BarChartGroupData group,
            int groupIndex,
            BarChartRodData rod,
            int rodIndex,
          ) {
            return BarTooltipItem(
              rod.toY.round().toString(),
              const TextStyle(
                fontSize: 10,
                color: Colors.white,
                // fontWeight: FontWeight.bold,
              ),
            );
          },
        ),
      );

  FlTitlesData get titlesData => FlTitlesData(
        show: true,
        bottomTitles: AxisTitles(
          sideTitles: SideTitles(
            //  rotateAngle: 90,
            showTitles: true,
            reservedSize: 30,
            // getTitlesWidget: getTitles,
          ),
        ),
        leftTitles: AxisTitles(
          sideTitles: SideTitles(showTitles: false, reservedSize: 30),
        ),
        topTitles: AxisTitles(
          sideTitles: SideTitles(
            showTitles: false,
          ),
        ),
        rightTitles: AxisTitles(
          sideTitles: SideTitles(showTitles: false),
        ),
      );

  FlBorderData get borderData => FlBorderData(
        show: true,
        border: Border.all(color: Color.fromARGB(255, 207, 182, 168), width: 1),
      );

  LinearGradient get _barsGradient => const LinearGradient(
        colors: [
          Colors.lightBlueAccent,
          Colors.greenAccent,
        ],
        begin: Alignment.bottomCenter,
        end: Alignment.topCenter,
      );

  List<BarChartGroupData> get barGroups =>
      List.generate(widget.data.length, (index) {
        //return Text(text[index].toString());
        // for ( var i in widget.data ) Text(i.toString())
        return BarChartGroupData(
          x: index + 1,
          barRods: [
            BarChartRodData(
              toY: widget.data[index].toDouble(),
              gradient: _barsGradient,
            )
          ],
          showingTooltipIndicators: [0],
        );
      });
}
F sam
  • 51
  • 7

0 Answers0