thechance101 / aay-chart Goto Github PK
View Code? Open in Web Editor NEWA chart library for Compose Multiplatform
License: MIT License
A chart library for Compose Multiplatform
License: MIT License
we would have version name like 0.0.5-beta
instead of Beta-0.0.5
implementation("io.github.thechance101:chart:Beta-0.05")
using this function throw this exception.
public fun Float.coerceIn(minimumValue: Float, maximumValue: Float): Float {
if (minimumValue > maximumValue) throw IllegalArgumentException("Cannot coerce value to an empty range: maximum $maximumValue is less than minimum $minimumValue.")
if (this < minimumValue) return minimumValue
if (this > maximumValue) return maximumValue
return this
}
Please think in another way to handle it.
I suggest always with canvas use ratio.
When you put showYAxis
in false: the chart still holding the padding.
Correct functionality
Hello!
I'm trying to add the lib and use it to do some pie charts.
I added dependencies and synced project (maybe some of them in wrong place).
But I think it's not working, cause I can't import PieChart or any other composable from the lib.
Can you mention where exactly I need to add?
Here is my build.gradle shared module:
plugins {
kotlin("multiplatform")
id("com.android.library")
id("org.jetbrains.compose")
id("com.squareup.sqldelight")
}
kotlin {
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = "17"
}
}
}
targets.withType(org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget::class.java).all {
binaries.withType(org.jetbrains.kotlin.gradle.plugin.mpp.Framework::class.java).all {
export("dev.icerock.moko:mvvm-core:0.16.1")
export("io.github.thechance101:chart:Beta-0.0.5")
}
}
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach { iosTarget ->
iosTarget.binaries.framework {
baseName = "shared"
isStatic = true
}
}
sourceSets {
val commonMain by getting {
dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
@OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class)
implementation(compose.components.resources)
implementation("androidx.datastore:datastore-preferences-core:1.1.0-dev01")
implementation("com.squareup.sqldelight:runtime:1.5.5")
implementation("com.squareup.sqldelight:coroutines-extensions:1.5.5")
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")
implementation("org.jetbrains.kotlinx:atomicfu:0.17.3")
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")
}
}
val androidMain by getting {
dependencies {
api("androidx.activity:activity-compose:1.8.0")
api("androidx.appcompat:appcompat:1.6.1")
api("androidx.core:core-ktx:1.12.0")
implementation("com.squareup.sqldelight:android-driver:1.5.5")
implementation("io.github.thechance101:chart:Beta-0.0.5")
}
}
val iosX64Main by getting
val iosArm64Main by getting
val iosSimulatorArm64Main by getting
val iosMain by creating {
dependencies {
implementation("com.squareup.sqldelight:native-driver:1.5.5")
}
dependsOn(commonMain)
iosX64Main.dependsOn(this)
iosArm64Main.dependsOn(this)
iosSimulatorArm64Main.dependsOn(this)
}
}
}
android {
compileSdk = (findProperty("android.compileSdk") as String).toInt()
namespace = "com.project"
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
sourceSets["main"].res.srcDirs("src/androidMain/res")
sourceSets["main"].resources.srcDirs("src/commonMain/resources")
defaultConfig {
minSdk = (findProperty("android.minSdk") as String).toInt()
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlin {
jvmToolchain(17)
}
}
sqldelight {
database("AppDatabase") {
packageName = "com.data.database"
sourceFolders = listOf("sqldelight")
}
}
dependencies {
implementation("androidx.compose.material3:material3:1.1.2")
implementation("androidx.core:core:1.10.1")
commonMainApi("dev.icerock.moko:mvvm-core:0.16.1")
commonMainApi("dev.icerock.moko:mvvm-compose:0.16.1")
commonMainApi("dev.icerock.moko:mvvm-flow:0.16.1")
commonMainApi("dev.icerock.moko:mvvm-flow-compose:0.16.1")
}
and build.gradle project:
buildscript {
dependencies {
classpath("com.android.tools.build:gradle:8.1.2")
classpath("com.squareup.sqldelight:gradle-plugin:1.5.5")
classpath("org.jetbrains.kotlinx:atomicfu-gradle-plugin:0.17.3")
}
}
plugins {
kotlin("multiplatform").apply(false)
id("com.android.application").apply(false)
id("com.android.library").apply(false)
id("org.jetbrains.compose").apply(false)
}
allprojects {
apply(plugin = "kotlinx-atomicfu")
}
FATAL EXCEPTION: main
Process: com.example.swiftpay, PID: 4648
java.lang.NoSuchMethodError: No static method drawText-O6gbksU$default(Landroidx/compose/
at com.aay.compose.baseComponents.XAxisDrawingKt.xAxisDrawing-6ZxE2Lo(XAxisDrawing.kt
at com.aay.compose.baseComponents.BaseChartContainerKt.baseChartContainer-obdOQcU(Bas
at com.aay.compose.lineChart.ChartContentKt$ChartContent$2.invoke(ChartContent.kt:81)
at com.aay.compose.lineChart.ChartContentKt$ChartContent$2.invoke(ChartContent.kt:65)
at androidx.compose.ui.draw.DrawBackgroundModifier.draw(DrawModifier.kt:116)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutN
at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDra
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:66
at androidx.compose.foundation.BackgroundNode.draw(Background.kt:156)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutN
at androidx.compose.ui.node.LayoutNodeDrawScope.performDraw(LayoutNodeDrawScope.kt:76
at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:55
at androidx.compose.foundation.BorderModifierNode$drawRoundRectBorder$1.invoke(Border
at androidx.compose.foundation.BorderModifierNode$drawRoundRectBorder$1.invoke(Border
at androidx.compose.ui.draw.CacheDrawModifierNodeImpl.draw(DrawModifier.kt:221)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutN
at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDra
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:66
at androidx.compose.foundation.DrawOverscrollModifier.draw(AndroidOverscroll.kt:80)
at androidx.compose.ui.node.BackwardsCompatNode.draw(BackwardsCompatNode.kt:349)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutN
at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDra
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.LayoutNodeDrawScope.drawContent(LayoutNodeDrawScope.kt:66
at androidx.compose.foundation.BackgroundNode.draw(Background.kt:156)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutN
at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDra
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierN
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:929)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinato
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoo
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStat
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapsh
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.and
at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.an
at android.view.View.draw(View.java:24409)
at android.view.View.updateDisplayListIfDirty(View.java:23267)
at android.view.View.draw(View.java:24136)
at android.view.ViewGroup.drawChild(ViewGroup.java:4748)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4505)
at android.view.View.updateDisplayListIfDirty(View.java:23253)
at android.view.View.draw(View.java:24136)
at android.view.ViewGroup.drawChild(ViewGroup.java:4748)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4505)
at android.view.View.updateDisplayListIfDirty(View.java:23253)
at android.view.View.draw(View.java:24136)
at android.view.ViewGroup.drawChild(ViewGroup.java:4748)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4505)
at android.view.View.updateDisplayListIfDirty(View.java:23253)
at android.view.View.draw(View.java:24136)
at android.view.ViewGroup.drawChild(ViewGroup.java:4748)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4505)
at com.android.internal.policy.DecorView.dispatchDraw(DecorView.java:1541)
at android.view.View.draw(View.java:24409)
at com.android.internal.policy.DecorView.draw(DecorView.java:1514)
at android.view.View.updateDisplayListIfDirty(View.java:23267)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:777)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:783)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:881)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:5647)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5330)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4486)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3116)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10885)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1301)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1309)
at android.view.Choreographer.doCallbacks(Choreographer.java:923)
at android.view.Choreographer.doFrame(Choreographer.java:852)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1283)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8757) at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
LineParameter has something like "label" parameter to denotes the item information when user clicks on it. Whereas, BarParameter doesn't have anything in it. Also, having on click callback could be useful for developer to show the dialog as soon as user clicks on it.
data class BarParameters(
val dataName: String,
val data: List<Double>,
val barColor: Color,
)
Please consider to add it!
Hi, I am not able to render any of the charts in the LazyColumn. Do you have any solution for this?
I had a dataset of 29 entries. I had isGris=true.
After rendering the Linechart there was a additional blue grid line at the end of the chart after the last entry, as if there should be another entry, but there isn't one, just the line.
the library not working with iOS
java.lang.IllegalStateException: Offset is unspecified at androidx.compose.ui.geometry.Offset.getX-impl(Offset.kt:67) at com.aay.compose.donutChart.component.PiePedigreeChartKt.drawPedigreeChart-88mDfTA(PiePedigreeChart.kt:62) at com.aay.compose.donutChart.PieChartKt$drawPieChart$1.invoke(PieChart.kt:168) at com.aay.compose.donutChart.PieChartKt$drawPieChart$1.invoke(PieChart.kt:159) at androidx.compose.ui.draw.DrawBackgroundModifier.draw(DrawModifier.kt:116)
This particularly happens when the sum of the data is 0.
I'm using version Beta-0.0.5
.
May be a check here would resolve the issue?
if (pieChartData.sumOf { it.data } <= 0) return
When clicking on a chart, a popup displaying the value of the selected point appears. However, there is an issue with the alignment of the popup content.
Is it possoble to support custom composable elements within the popup content or, at the very least, the ability to use custom strings for improved multilanguage support. This enhancement would greatly enhance the usability of the chart interaction feature.
Thank you for considering this improvement request!
Hi, is there plan to add support for Wasm target?
it shows only legends like completed
, I have tried LineChart and BarChart, worked fine and shown data only when send fixed height
to LineChart to it's modifier.
Kotlin: 1.9.20
Compose: compose-bom:2023.10.01
Android Studio Giraffe | 2022.3.1 Patch 4
Build #AI-223.8836.35.2231.11090377, built on November 14, 2023
FATAL EXCEPTION: main
Process: com.ahmer.accounts, PID: 22055
java.lang.IllegalStateException: Offset is unspecified
at androidx.compose.ui.geometry.Offset.getX-impl(Offset.kt:67)
at com.aay.compose.donutChart.component.PiePedigreeChartKt.drawPedigreeChart-88mDfTA(PiePedigreeChart.kt:62)
at com.aay.compose.donutChart.PieChartKt$drawPieChart$1.invoke(PieChart.kt:168)
at com.aay.compose.donutChart.PieChartKt$drawPieChart$1.invoke(PieChart.kt:159)
at androidx.compose.ui.draw.DrawBackgroundModifier.draw(DrawModifier.kt:116)
at androidx.compose.ui.node.LayoutNodeDrawScope.drawDirect-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:105)
at androidx.compose.ui.node.LayoutNodeDrawScope.draw-x_KDEd0$ui_release(LayoutNodeDrawScope.kt:86)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:365)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:54)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2299)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:467)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:230)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209)
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:305)
app_time_stats: avg=16.19ms min=3.91ms max=37.41ms count=30
at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:246)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:54)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2299)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:467)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:230)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209)
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:305)
at androidx.compose.ui.platform.RenderNodeLayer.drawLayer(RenderNodeLayer.android.kt:246)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:349)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutModifierNodeCoordinator.performDraw(LayoutModifierNodeCoordinator.kt:182)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.draw(NodeCoordinator.kt:354)
at androidx.compose.ui.node.LayoutNode.draw$ui_release(LayoutNode.kt:922)
at androidx.compose.ui.node.InnerNodeCoordinator.performDraw(InnerNodeCoordinator.kt:174)
at androidx.compose.ui.node.NodeCoordinator.drawContainedDrawModifiers(NodeCoordinator.kt:362)
at androidx.compose.ui.node.NodeCoordinator.access$drawContainedDrawModifiers(NodeCoordinator.kt:54)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:384)
at androidx.compose.ui.node.NodeCoordinator$invoke$1.invoke(NodeCoordinator.kt:383)
at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2299)
at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:467)
at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:230)
at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:383)
at androidx.compose.ui.node.NodeCoordinator.invoke(NodeCoordinator.kt:54)
at androidx.compose.ui.platform.RenderNodeApi29.record(RenderNodeApi29.android.kt:209)
at androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList(RenderNodeLayer.android.kt:305)
at androidx.compose.ui.platform.AndroidComposeView.dispatchDraw(AndroidComposeView.android.kt:1138)
at android.view.View.draw(View.java:23892)
at android.view.View.updateDisplayListIfDirty(View.java:22756)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
at android.view.View.updateDisplayListIfDirty(View.java:22712)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
at android.view.View.updateDisplayListIfDirty(View.java:22712)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
at android.view.View.updateDisplayListIfDirty(View.java:22712)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4540)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4513)
at android.view.View.updateDisplayListIfDirty(View.java:22712)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:694)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:700)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:798)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:4939)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4643)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3822)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2465)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9305)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1339)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1348)
at android.view.Choreographer.doCallbacks(Choreographer.java:952)
at android.view.Choreographer.doFrame(Choreographer.java:882)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1322)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Would be very cool to allow the area to arrive to the max corner, there is always an extra space
Details:
I use this library in an XML-based project. It works fine but xAxisData data not showing.
Code:
@composable
fun BarChartSample(xAxisData: List, testBarParameters: List) {
xAxisData.toString().logDebug("RABBI")
BarChart(
legendPosition = LegendPosition.DISAPPEAR,
chartParameters = testBarParameters,
barCornerRadius = 2.dp,
gridColor = Color.LightGray,
xAxisData = xAxisData,
isShowGrid = true,
showXAxis = true,
showYAxis = true,
animateChart = true,
showGridWithSpacer = true,
yAxisStyle = TextStyle(
fontSize = 12.sp,
color = Color.Gray,
),
xAxisStyle = TextStyle(
fontSize = 12.sp,
color = Color.Gray,
fontWeight = FontWeight.W400
),
barWidth = 20.dp
)
}
I copied the line chart code from the README that has the 3 lines.
Currently running on desktop. When I hover or click on the chart nothing happens.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.