imaNNeo/fl_chart

Use the default theme available by the themeData for tooltips instead of library's custom theme

開放

#1,377 建立於 2023年6月25日

 (2 則留言) (1 個反應) (0 位負責人)Dart (1,964 個分叉)batch import
Fundamentalenhancementgood first issue

倉庫指標

星標
 (7,513 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

** Don't make a duplicate issue. You can search in issues to make sure there isn't any already opened issue with your concern.

Is your feature request related to a problem? Please describe. No

Describe the solution you'd like So, currently, when making bar charts, if we have to customise the tooltip theme properties, we would define the BarTouchTooltipData that takes a single value for a theme. Say, if the app is using a light theme, the tooltip background will be light and the text will be dark. But for dark mode, we would have to conditionally change these values. So if we just use Flutter's built-in themeData and provide TooltipThemeData for both light and dark colour schemes, it's easier to manage since we don't have to write conditional statements.

Basically making the charts adapt to any style of theme.

Describe alternatives you've considered n/a

Additional context This is how we could define the theme for tooltip

    tooltipTheme: TooltipThemeData(
      decoration: BoxDecoration(
        color: lightDynamic?.inverseSurface,
      ),
      textStyle: TextStyle(
        color: lightDynamic?.onInverseSurface,
      ),
    ),

vs

barTouchData: BarTouchData(
                              touchTooltipData: BarTouchTooltipData(
                                tooltipRoundedRadius: 5,
                                tooltipBgColor: Theme.of(context)
                                    .colorScheme
                                    .onInverseSurface,
                                getTooltipItem:
                                    (group, groupIndex, rod, rodIndex) {
                                  return BarTooltipItem(
                                    'test',
                                    TextStyle(
                                      color: Theme.of(context)
                                          .colorScheme
                                          .inverseSurface,
                                    ),
                                  );
                                },
                              ),
                            ),

貢獻者指南