German Canvas.DrawLine in Scrollview Fehler

Discussion in 'German Forum' started by danebn11, Jul 11, 2018.

Similar threads

B4A Library Printing and Pdf creation
B4A Tutorial ScrollView example
B4A Code Snippet Mathemetics Pendulum
B4i Tutorial Bouncing smilay - Drawing with Canvas
B4A Code Snippet Animated Border
  1. danebn11

    danebn11 Member Licensed User

    Hallo Leute,

    ich möchte in einer Scrollview durch Canvas.DrawLine Trennstriche zwischen Buttons ziehen, welche sich beim Scrollen auch mitbewegen sollen.

    Versuch 1: (Ausschnitt aus dem Code)

    Code:
    Sub Globals
        
    Private ScrollView1 As ScrollView
        
    Dim Canvas1 As Canvas
    End Sub

    Sub Activity_Resume
        ScrollView1.Initialize(
    100%y)
        
    Activity.AddView(ScrollView1,0,0,100%x,88%y)
        Canvas1.Initialize(ScrollView1)
        
    for i = 0 to Anzahl_Labels
           Canvas1.DrawLine(
    0%x,(i * Label_height),100%x,(i * Label_height),Colors.Black,2dip)
        
    Next
    End Sub
    Das ist das Ergebnis:

    https://1drv.ms/u/s!An0cvhoTEKFCgbRwI9YIT-VffpxNYA

    Sieht genau so aus wie ich wollte, allerdings bewegen sich die Trennstriche beim Scrollen nicht mit.

    Versuch 2:

    Code:
    Sub Globals
        
    Private ScrollView1 As ScrollView
        
    Dim Canvas1 As Canvas
    End Sub

    Sub Activity_Resume
        ScrollView1.Initialize(
    100%y)
        
    Activity.AddView(ScrollView1,0,0,100%x,88%y)
        ScrollView1.Panel.Width = 
    100%x
        ScrollView1.Panel.Height = 
    100%y
        Canvas1.Initialize(ScrollView1.Panel) 
    'Diesmal wird auf .Panel initialisiert
        for i = 0 to Anzahl_Labels
           Canvas1.DrawLine(
    0%x,(i * Label_height),100%x,(i * Label_height),Colors.Black,2dip)
        
    Next
    End Sub
    Hier das Ergebnis:

    https://1drv.ms/u/s!An0cvhoTEKFCgbRxETz6C3ZdiZ8-oQ

    Diesmal bewegen sich die Trennstriche beim Scrollen mit, allerdings passen die Positionen nicht mehr.

    Zur Info:
    Label_height entspricht 50dip, wobei die Buttons mit einer Größe von 40dip etwas Luft über und unter den Trennstrichen lassen sollten.

    Kann mir jemand sagen, wieso die Abstände am Panel anders sind, als direkt am Scrollview, obwohl alles in dip angegeben wird?
    Gibt es einen Unterschied bei den dip Werten, wenn man sie verschieden verwendet?

    Die Buttons werden übrigens auch im Code eingefügt:

    Code:
    ScrollView1.Panel.AddView(Button_plus,Position_Button_plus_X,Position_Y + (i * Y_Offset) + 5dip,Button_height,Button_height)
    ScrollView1.Panel.AddView(Button_minus,Position_Button_plus_X + Button_height + 
    5dip,Position_Y + (i * Y_Offset) + 5dip,Button_height,Button_height)
    Danke im Voraus
     
    Last edited: Jul 11, 2018
  2. danebn11

    danebn11 Member Licensed User

    Problem gelöst :)

    Falls nochmal jemand dieses Problem hat:
    Nach dem Canvas.initialize(Scrollview) darf Scrollview.Panel.height nicht mehr verändert werden, außer man führt Canvas.initialize nochmals aus.
     
  3. Filippo

    Filippo Expert Licensed User

    Viel zu kompliziert, schau dir die Beispiele von xCustomlistview.
     
    DonManfred likes this.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice