Jump to content
View in the app

A better way to browse. Learn more.

FGX Native

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

На форме лежит CollectionView. Открываю модальную форму с помощью TfgAnimationHelper. На ней также есть CV. Произвожу операции над данными (или не провожу). Закрываю ее и иногда приложение падает.

Сначала я подумал, что виноват Callback, в котором я обновляю данные. Я закомментировал код в нем, но крэш не пропал. Вот что выдает adb logcat:

11-05 10:40:50.152: D/NativeListViewAdapter(9299): onViewRecycled
11-05 10:40:50.153: D/NativeListViewAdapter(9299): onViewRecycled
11-05 10:40:52.962: D/NativeListViewAdapter(9299): onViewRecycled
11-05 10:40:52.963: D/NativeListViewAdapter(9299): onBindViewHolder
11-05 10:40:54.655: D/NativeListViewAdapter(9299): onViewRecycled
11-05 10:40:54.656: D/NativeListViewAdapter(9299): onBindViewHolder
11-05 10:40:56.297: D/NativeListViewAdapter(9299): onViewRecycled
11-05 10:40:56.298: D/NativeListViewAdapter(9299): onBindViewHolder
11-05 10:40:58.023: D/AndroidRuntime(9299): Shutting down VM
11-05 10:40:58.024: E/AndroidRuntime(9299): FATAL EXCEPTION: main
11-05 10:40:58.024: E/AndroidRuntime(9299): Process: by.vcbrest.bloknot, PID: 9299
11-05 10:40:58.024: E/AndroidRuntime(9299): java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 9(offset:9).state:86 android.support.v7.widget.RecyclerView{1ac694f VFED..... ........ 0,0-1220,429}, adapter:ru.fgx.view.listview.NativeListViewAdapter@9918dc, layout:android.support.v7.widget.GridLayoutManager@ceacde5, context:android.view.ContextThemeWrapper@ed3a0ba
11-05 10:40:58.024: E/AndroidRuntime(9299): 	at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5817)
11-05 10:40:58.024: E/AndroidRuntime(9299): 	at android.support.v7.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:285)
11-05 10:40:58.024: E/AndroidRuntime(9299): 	at android.support.v7.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:342)
11-05 10:40:58.024: E/AndroidRuntime(9299): 	at android.support.v7.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:358)
11-05 10:40:58.024: E/AndroidRuntime(9299): 	at android.support.v7.widget.GapWorker.prefetch(GapWorker.java:365)
11-05 10:40:58.024: E/AndroidRuntime(9299): 	at android.support.v7.widget.GapWorker.run(GapWorker.java:396)
11-05 10:40:58.024: E/AndroidRuntime(9299): 	at android.os.Handler.handleCallback(Handler.java:751)
11-05 10:40:58.024: E/AndroidRuntime(9299): 	at android.os.Handler.dispatchMessage(Handler.java:95)
11-05 10:40:58.024: E/AndroidRuntime(9299): 	at android.os.Looper.loop(Looper.java:154)
11-05 10:40:58.024: E/AndroidRuntime(9299): 	at android.app.ActivityThread.main(ActivityThread.java:6119)
11-05 10:40:58.024: E/AndroidRuntime(9299): 	at java.lang.reflect.Method.invoke(Native Method)
11-05 10:40:58.024: E/AndroidRuntime(9299): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
11-05 10:40:58.024: E/AndroidRuntime(9299): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

 

Delphi 10.3.3, SDK 25.25, Android 7.1

зы. Сейчас попробовал отвязаться от данных на главной форме, заполнил статическими строками, крэш не ушел.

Edited by vcbous

  • Author

Я не на тот CV подумал, судя по всему. Стал было демку делать, и заметил, что в модальной форме в onHide грохаю данные. Вроде в этом причина. Пока не падает.

Edited by vcbous

  • Administrators

TfgCollectionView очень чувствителен к рассинхронизации данных. Другими словами, если вы что-то меняете в данных, но не сообщаете об этом компоненту, то он может бросать исключения, чтобы информировать, что его состояние не соответствует реальности. Обычно в таких случаях нужно обязательно вначале проверить, что вы информируете компонент обо всех изменениях в данных. 

  • Author
В 07.11.2020 в 17:08, Yaroslav Brovin сказал:

TfgCollectionView очень чувствителен к рассинхронизации данных. Другими словами, если вы что-то меняете в данных, но не сообщаете об этом компоненту, то он может бросать исключения, чтобы информировать, что его состояние не соответствует реальности. Обычно в таких случаях нужно обязательно вначале проверить, что вы информируете компонент обо всех изменениях в данных. 

Я когда java ошибку гуглил, то встречал информацию про notifyDatasetChanged. У нас это ReloadItems?

Recently Browsing 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.