-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Background
JFoenix worked well on Android in the past when using:
- JavaFX 8 / 1.8
javafxmobile-plugin- JavaFXPorts + Dalvik VM
- Charm Down–based Android deployment
In that setup, JFoenix relied on Android-specific JavaFX skins, for example:
TextAreaSkinAndroidTextFieldSkinAndroid
which were available at runtime and used directly by JFoenix Android skins:
JFXTextAreaSkinAndroidJFXTextFieldSkinAndroid
This approach worked reliably for Android APK builds.
Current Situation (Problem)
With modern tooling:
- JavaFX 17+
- GluonFX
- SubstrateVM / GraalVM
- Attach APIs
- Android deployment via Gluon
JFoenix no longer works correctly on Android, even though it still works fine on desktop.
The main blocker appears to be that:
TextAreaSkinAndroidandTextFieldSkinAndroidare no longer exposed as usable APIs- They exist only in the JavaFX Android source tree, not in public JavaFX artifacts
- Third-party libraries (like JFoenix) cannot depend on them safely
Relevant OpenJFX source (Android-only):
Related Gluon / Substrate Discussion
I have opened a related question with the Gluon team to understand the intended approach going forward:
🔗 Gluon Substrate issue:
gluonhq/substrate#1340
This issue discusses:
- Whether Android skins are internal-only
- How custom controls should support Android with GluonFX
- Whether copying or reimplementing Android skins is expected
Questions for JFoenix Maintainers
I’d appreciate guidance on the JFoenix side:
- Is Android support still a goal for JFoenix with JavaFX 17+?
- Should JFoenix continue to rely on Android-specific skins, or move away from them?
- Would a partial reimplementation of Android behavior be acceptable?
- Is there interest in aligning JFoenix with the modern GluonFX / SubstrateVM stack?
I’m currently experimenting with porting JFoenix to JavaFX 17+ and GluonFX and would be happy to contribute fixes or refactors if there is an agreed direction.
Summary
- ✅ JFoenix worked on Android with JavaFX 8 + JavaFXPorts
- ❌ It does not work correctly with JavaFX 17+ + GluonFX
- 🚧 Android-specific skins are no longer publicly accessible
- 🤝 Clarification is needed on the future Android strategy
Thanks for maintaining JFoenix — any guidance would be highly appreciated 🙏