Ciao,
ho voluto creare due nuovi B4XDialog template:
1. implementazione del lazy loading in B4XListTemplate
2. fusione di B4XSearchTemplate + B4XListTemplate con l'implementazione del lazy loading - nome: B4XSearchListLazyTemplate
Per il lazy loading ho usato la libreria PreoptimizedCLV, che ha come "unico" problema che i colori della customlistview non sono gestibili.
Il problema principale è il template n. 2, B4XSearchListLazyTemplate, e ce l'ho solo in B4A.
Quando lo visualizzo la prima volta nessun problema. Quando lo visualizzo per la seconda volta va in crash:
In B4J invece fila liscio.
L'errore lo dà la riga "Dim p As B4XView = CustomListView1.GetPanel(i)".
Ho messo un log per capire se ci fosse un panel particolare ma variano. A volte 2, a volte 7, questa volta 11.
Mi resta sempre il problema dei colori usando PreoptimizedCLV che impatta sulla selezione degli item della customlistview e sul colore delle lettere quando uso il search (normalmente le lettere in ricerca si colorano di rosso), ma rispetto al crash è un problema minore.
Suggerimenti o soluzioni?
Grazie in anticipo!
Edit: progetto corretto allegato.
ho voluto creare due nuovi B4XDialog template:
1. implementazione del lazy loading in B4XListTemplate
2. fusione di B4XSearchTemplate + B4XListTemplate con l'implementazione del lazy loading - nome: B4XSearchListLazyTemplate
Per il lazy loading ho usato la libreria PreoptimizedCLV, che ha come "unico" problema che i colori della customlistview non sono gestibili.
Il problema principale è il template n. 2, B4XSearchListLazyTemplate, e ce l'ho solo in B4A.
Quando lo visualizzo la prima volta nessun problema. Quando lo visualizzo per la seconda volta va in crash:
B4X:
Logger connesso a: HUAWEI WAS-LX1A
--------- beginning of system
--------- beginning of main
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create (first time) **
Index time: 368 ms (10000 Items)
PCLV.pnlOverlay.Width - PCLV.B4XSeekBar1.mBase.Left 125
Width: 1080 - PCLV.pnlOverlay.Width: 900
Call B4XPages.GetManager.LogEvents = True to enable logging B4XPages events.
** Activity (main) Resume **
intResult = -3
Cancel
0
1
2
3
4
5
6
7
8
9
10
11
Error occurred on line: 117 (cB4XSearchListLazyTemplate)
java.lang.RuntimeException: Object should first be initialized (View).
Did you forget to call Activity.LoadLayout?
at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:67)
at anywheresoftware.b4a.objects.B4XViewWrapper.GetView(B4XViewWrapper.java:335)
at b4a.example3.customlistview._getpanel(customlistview.java:440)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:348)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:157)
at anywheresoftware.b4a.debug.Debug.delegate(Debug.java:262)
at b4a.example.cb4xsearchlistlazytemplate._update(cb4xsearchlistlazytemplate.java:715)
at b4a.example.cb4xsearchlistlazytemplate$ResumableSub_Show.resume(cb4xsearchlistlazytemplate.java:902)
at anywheresoftware.b4a.shell.DebugResumableSub$DelegatableResumableSub.resumeAsUserSub(DebugResumableSub.java:48)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:351)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:157)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:201)
at anywheresoftware.b4a.shell.DebugResumableSub$DelegatableResumableSub.resume(DebugResumableSub.java:43)
at anywheresoftware.b4a.keywords.Common$14.run(Common.java:1801)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:101)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7529)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
In B4J invece fila liscio.
L'errore lo dà la riga "Dim p As B4XView = CustomListView1.GetPanel(i)".
Ho messo un log per capire se ci fosse un panel particolare ma variano. A volte 2, a volte 7, questa volta 11.
Mi resta sempre il problema dei colori usando PreoptimizedCLV che impatta sulla selezione degli item della customlistview e sul colore delle lettere quando uso il search (normalmente le lettere in ricerca si colorano di rosso), ma rispetto al crash è un problema minore.
Suggerimenti o soluzioni?
Grazie in anticipo!
Edit: progetto corretto allegato.
Attachments
Last edited: