-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
ListView not updating on Android #3193
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Hi @johnnyzen, I reviewed the app and tested it with latest NativeScript 2.4, however was unable to reproduce the described problem. Could you verify, whether your are using latest NativeScript, while using Let me know, whether this helps or if I could assist you further |
Great news! Many thanks for your reply, updating has fixed the issue... out of interest, do you know what the issue was ? Had a look at the release notes, but couldnt see... Just curious. Thanks again! Best |
Hi all, Sorry I have reopened as we managed to recreate on the latest version. As crazy as it sounds, we noticed the problem returns if we remove: height="100%" from : <ListView [items]="items" height="100%" > (from the sample project app.component.html (https://github.com/johnnyzen/NativeScript-Issue) Any ideas whats happening here? The reason why we set the height here, was we noticed a problem with running it on iOS - The listview didnt seem to expand correctly when we added a new row. |
We also noticed the rows were stopping being updated when off screen and then scroll to become visible. Here is another project demoing where no height exists, and testing using different types of views : https://github.com/brins0/nativescript-experiment-ts |
Hi @johnnyzen, In the Sample
Regards, |
Heya @tsonevn, I'm working with @johnnyzen on this too. I've wrapped the <StackLayout orientation="vertical">
<StackLayout orientation="horizontal">
<Button verticalAlignment="center" text="Add" (tap)="onTapAdd()"></Button>
<Button verticalAlignment="center" text="Remove" (tap)="onTapRemove()"></Button>
<Button verticalAlignment="center" text="Increase All" (tap)="onTapIncreaseAll()"></Button>
<Label verticalAlignment="center" text="{{ validItems }}"></Label>
</StackLayout>
<GridLayout>
<ListView [items]="items">
<template let-item="item">
<counter [model]="item"></counter>
</template>
</ListView>
</GridLayout>
</StackLayout> I'm basing this on the repo @johnnyzen mentioned before: https://github.com/brins0/nativescript-experiment-ts As soon as the first element in the list stops updating (when the timer reaches zero), all the other elements in the list stop updating. Updating the first element or adding/removing from the list then causes all other elements to be updated. Moving the element out of the viewport then back in also causes the elements to update as they come back into view. The models are still representing the correct data though. |
I've made another handful of changes to the layouts and added text box to further show the issues we're having. If you add enough items to make the list scroll, selecting a text box then scrolling produces really odd effects showing duplicate selections further down the list. The position text appears in also messes up. It now logs the output of the model with its message so you can see the models themselves are updating behind the scenes. I think there's an issue with the recycling of items in the list view after talking to some of our native guys, though I'm not an expert in the low level native functionality like @johnnyzen is... |
Hi @brins0, Regards, |
Doing all of the above still hasn't resolved the issue for us. Here's some details for our test device:
It also happens on my personal phone, here's details for that:
As an additional debugging note, I've found anything changing anything in a model bound to a component which isn't in view which then comes into view in a ListView is effected by this issue. Adding a new counter component in programmatically when starting the app produces the same symptoms. |
Hi all, I've investigated this issue with the project from here and the problem is visible with the latest version (if you remove GridLayout that wraps the ListView control). However the problem comes from the fact that native Android ListView control gives a visual items in an unpredictable order (when placed in a container with an unspecified height like StackLayout). I'll try to explain: With the first tap on a button The solution is very simple just to be strict on MVVM pattern. As it turns out
|
Many thanks for the replies and investigation. I'm fairly new to this world, but I am sure @brins0 will be most pleased. |
Refresh radlistview nativescript on updating data
|
Refresh Listview not working
|
@divyachandana do you have any option to refresh list view |
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Tell us about the problem
The listview on Android behaves oddly when updating elements on particular rows, using Angular and TS,
Observable
andObservableArray
Which platform(s) does your issue occur on?
Android Only
Please provide the following version numbers that your issue occurs with:
{
"description": "NativeScript Application",
"license": "SEE LICENSE IN ",
"readme": "NativeScript Application",
"repository": "",
"nativescript": {
"id": "org.nativescript.nativescriptexperimentts",
"tns-android": {
"version": "2.3.0"
},
"tns-ios": {
"version": "2.3.0"
}
},
"scripts": {
"build": "tns run android --device 1 --watch",
"livesync": "tns livesync android --device 1 --watch"
},
"dependencies": {
"@angular/common": "2.1.2",
"@angular/compiler": "2.1.2",
"@angular/core": "2.1.2",
"@angular/forms": "2.1.2",
"@angular/http": "2.1.2",
"@angular/platform-browser": "2.1.2",
"@angular/platform-browser-dynamic": "2.1.2",
"@angular/router": "3.1.2",
"nativescript-angular": "1.1.3",
"nativescript-theme-core": "^0.2.1",
"reflect-metadata": "~0.1.8",
"rxjs": "5.0.0-beta.12",
"tns-core-modules": "2.4.0",
"typed-event-emitter": "^1.0.3",
"typescript-collections": "^1.2.3"
},
"devDependencies": {
"babel-traverse": "6.19.0",
"babel-types": "6.19.0",
"babylon": "6.14.1",
"lazy": "1.0.11",
"nativescript-dev-android-snapshot": "^0..",
"nativescript-dev-typescript": "^0.3.2",
"typescript": "^2.0.10",
"zone.js": "~0.6.21"
}
}
Please tell us how to recreate the issue in as much detail as possible.
Expected Behaviour
The rest of the items should continue to update as usual.
THIS WORKS FINE ON IOS
The text was updated successfully, but these errors were encountered: