AAChartModel / AAChartCore-Kotlin

📈📊⛰⛰⛰An elegant modern declarative data visualization chart framework for Android . Extremely powerful, supports line, spline, area, areaspline, column, bar, pie, scatter, angular gauges, arearange, areasplinerange, columnrange, bubble, box plot, error bars, funnel, waterfall and polar chart types.极其精美而又强大的 Android 数据可视化图表框架,支持柱状图、条形图、折线图、曲线图、折线填充图、曲线填充图、气泡图、扇形图、环形图、散点图、雷达图、混合图等各种类型的多达几十种的信息图图表,完全满足工作所需.
Apache License 2.0
985 stars 114 forks source link

Is there a way to disable stickyTracking? #199

Closed naitgacem closed 7 months ago

naitgacem commented 7 months ago

To be clear, what I would like to achieve is avoid the tooltip sticking around the chart. I want it to be visible onlt for a short amount after user click, then it should disappear.

Thanks

AAChartModel commented 7 months ago

Refer to:

AAChartModel commented 7 months ago

Kotlin sample code:

    fun automaticallyHideTooltipAfterItIsShown(): AAOptions {
        val aaChartModel = AAChartModel()
            .chartType(AAChartType.Areaspline) //图表类型
            .colorsTheme(arrayOf("#04d69f", "#1e90ff", "#ef476f", "#ffd066"))
            .stacking(AAChartStackingType.Normal)
            .yAxisVisible(false)
            .markerRadius(0)
            .series(arrayOf(
                AASeriesElement()
                    .name("Tokyo")
                    .data(arrayOf(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6)),
                AASeriesElement()
                    .name("NewYork")
                    .data(arrayOf(0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5)),
                AASeriesElement()
                    .name("London")
                    .data(arrayOf(0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0)),
                AASeriesElement()
                    .name("Berlin")
                    .data(arrayOf(3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8))
            ))

        val aaOptions = aaChartModel.aa_toAAOptions()

        aaOptions.tooltip?.apply {
             style(AAStyle.style(AAColor.White))
            .backgroundColor("#050505")
            .borderColor("#050505")
        }

        aaOptions.xAxis
            ?.crosshair(AACrosshair()
                .color(AAColor.DarkGray)
                .dashStyle(AAChartLineDashStyleType.LongDashDotDot)
                .width(2))

        //https://api.highcharts.com/highcharts/chart.events.load
        //https://www.highcharts.com/forum/viewtopic.php?t=36508
        aaOptions.chart
            ?.events(AAChartEvents()
                    .load("""
            function() {
                const chart = this;
                Highcharts.addEvent(
                    chart.tooltip,
                    'refresh',
                    function () {
                        chart.tooltip.hide(888);
                });
            }"""
                    )
            )
        return aaOptions
    }

you can find it in the demo.