Comments (1)
I found the cause, it appears to be essentially a race condition.
The popUp is created, then hidden is called before the popUp is added to the collection of instances (thus there is nothing to hide). iOS does not use a collection of instances, and appears to have the popUp available immediately when executed.
If you add a setTimeout
to the hide
method if there are 0 items in the collection, then after 500
the hide
works as expected (in loading-indicator.android.ts
):
hide(retryMs: number = 500) {
if (
!this._loadersInstances ||
(this._loadersInstances && this._loadersInstances.length === 0)
) {
setTimeout(() => this._hideInstances(), retryMs);
return;
}
this._hideInstances();
}
private _hideInstances() {
try {
for (let i = 0; i < this._loadersInstances.length; i++) {
const loader = this._loadersInstances[i];
if (loader) {
if (this._isShowing(loader)) {
loader.dismiss();
this._loadersInstances.splice(i, 1);
}
}
}
this._popOver = null;
this._currentProgressColor = null;
} catch (e) {
console.log(e);
}
}
Although i'm not really sure if this is ideal either, essentially we're dealing with a race condition against the native component rendering then execution of that finishing and being added to the collection and hiding the component immediately (i.e. the condition to keep loading occurs quickly).
I have another idea i'll pursue, expect a PR soon :)
from nativescript-loading-indicator.
Related Issues (20)
- Files missing after removing and adding plugin. HOT 4
- App crushes on show function HOT 2
- Loading-indicator never closes HOT 3
- Message and Details are not displayed on iOS HOT 6
- Mode: Indeterminate won't close in Android and iOS HOT 3
- Android is error, using Nativescript 6.0.0 HOT 8
- Error building iOS: CDN: trunk URL couldn't be downloaded... HOT 5
- Does not work in modal HOT 10
- Error: Cannot find module '@nativescript/core/color' (CoreFoundation) *** Terminating app due to uncaught exception 'NativeScript encountered a fatal error: Error: Cannot find module '@nativescript/core/color'
- Cannot find name HOT 4
- Android layout-issue after calling application.off(application.orientationChangedEvent); HOT 1
- Long messages do not line break in iOS HOT 1
- Loading text not displaying HOT 1
- Android: loading-indicator and orientation change HOT 1
- {N} 7 Error creating Loading Indicator Pop Over: Cannot read property 'drawable' of undefined HOT 10
- Feature request: Add a delay option for showing the indicator
- Loader hides in iOS
- Android Issue : Error creating Loading Indicator Pop Over: Cannot read property 'android' of null
- JS: Error creating Loading Indicator Pop Over: Cannot read property 'getResources' of undefined HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nativescript-loading-indicator.