Mit der standard Version der CustomListView geht es nicht, die hat keine Funktion welche den obersten Eintrag zurück gibt oder zu mindest die ScrollPosition zurück gibt.
Ich sehe diese Möglichkeiten:
- In dem CustomListView Code das ScrollView.ScrollPosition Event hinzufügen welche den Wert an eine Routine im Hauptprogramm übergibt.
Mit dem ScrollPosition Wert kannst Du den Index des oberten Eintrags rechen oder die Koordinaten der Einträge speichern falls die Höhen der Einträge unterschiedlich sind.
- Mit einer standard ScrollView arbeiten, und den obersten Eintrag mit der ScrollPosition rechnen oder die Koordinaten speichern.
Ich habe erst ein bisschen mit dem Programm 'spielen' müssen den auf meinem Smartphone sah Ich nur das Bild unten.
Hab dann auf meinem Tablett weiter gespiel.
Wie definierst Du den Eintrag der oben stehen bleiben soll ?
Dazu brauchst Du eine separate Anzeige.
Pass auf, in der drawBG Routine erstellst Du bei jedem Click eine neue Bitmap, das kann mit der Zeit viel Speicherplatz vergeuden.
Dim bpbg As Bitmap
bpbg.Initialize(File.DirAssets, fname)
Die Bitmaps solltest Du in Global definieren.
Ich denke Du könntest auch ohne der drawBG Routine das weisse Dreieck zu zeigen.
Erstelle eine Bitmap mit dem Dreieck mit der Panelhintergrundfarbe und der Rest darum transparent.
Wenn der Panelhintergrund normal ist sieht man das Dreieck nicht, gleiche Farbe.
Wenn der Panelhintergrund geändert wird sieht man es.
Ich würde aber für das ganze eine CustomView Class erstellen.