Flutter update issue
I have a project with a menu in a nested artboard. The menu artboard contains buttons as nested artboards. Each button artboard has listeners for pointer input. In the editor and in the browser everything works as expected, but in Flutter the listeners do not work. However, if I add a random repeating animation to any of the artboards, everything works. Are nested artboards maybe not initialised as active in the Flutter runtime?
Hi
Hi
Some things that could be going wrong:
Not using an up-to-date version of the Rive Flutter runtime
If you are manually initializing/creating an artboard in Flutter, be sure to call
.instance()
on the artboardYou could potentially be adding multiple state machine controllers to the same artboard and they are competing against each other.
If you need to share the files privately you can reach out to our support: https://rive.atlassian.net/servicedesk/customer/portals
RiveAnimation.asset( behavior: RiveHitTestBehavior.translucent, useArtboardSize: true, 'assets/animations/navigation.riv', alignment: Alignment.center, fit: BoxFit.fitWidth, onInit: onRiveInit, ),
void onRiveInit(Artboard artboard) { usedArtboard = artboard; final riveController = StateMachineController.fromArtboard(usedArtboard, 'Brugt'); artboard.addController(riveController!); buttonCount = riveController.getNumberInput('Count')!; riveVisible = riveController.getBoolInput('Visible'); bottonLogo = riveController.getBoolInput('Logo'); buttonSelected = riveController.getNumberInput('Selected'); buttonOneColor = riveController.getNumberInput('B1Color'); buttonTwoColor = riveController.getNumberInput('B2Color'); buttonThreeColor = riveController.getNumberInput('B3Color'); usedArtboard.setTextRun('Menu/Button 1/Label', 'Køb'); usedArtboard.setTextRun('Menu/Button 2/Label', 'Brugt'); usedArtboard.setTextRun('Menu/Button 3/Label', 'Salg'); riveController.addEventListener(onRiveEvent); }
This is the Flutter code - please tell me if I can give you more information that will help.
Thanks
Hi
I've shared the .rev file as instructed, the reference is RIV-4908. As for your suggestions:
Everything is updated
We're not. The implementation is posted above, but the problem persists with a minimal implementation
This gave me a massive headache, since it's not apparent that the StateMachines designation in the widget parameters is the same as a state machine controller. The implementation stuff in Flutter generally seems overly complicated and convoluted and I hope it'll be simplified at some point. This is not the issue with the nested listeners, however.
I'm equally sorry for the late reply, but hope to hear from you soon. I still love Rive.❤️
Hey
I can reproduce your issue, and we will investigate it. Thanks for reporting.
Great!
Hi, I’m following up to say we have not forgotten about this issue. But it will require an underlying fix that requires additional consideration.
A workaround you could do yourself (instead of having a looping animation), is to also call advance(0)
on the Rive state machine controller after a tap occurs. This forces Rive to recalculate and will kick of the state machine again.
We’ll let you know when we have made an update.