iOS Question B4XSwitch position changing

abarnett

Member
Licensed User
Longtime User
I am trying to change the b4xSwitch left and top position using b4xSwitch.mBase.Left & b4xSwitch.mBase.Top but despite the code being executed it does not always move on the screen. I have even tried placing it inside a panel but same effect.
 
B4X: Copy
Sub Process_Globals
    Private chkGeofence1 As B4XSwitch
End Sub
Private Sub Application_Start (Nav As NavigationController)
    MainPage.Initialize("PageMap")
    MainPage.RootPanel.Color = Colors.White
    MainPage.RootPanel.LoadLayout("main")
    MainPage.Title = "Products - Map"
    Starter.Initialize
    chkGeoFence1.mBase.Top = 5
End Sub
 
Upvote 0
What size is the Panel?
As chkGeofence1 is a child of customview-B4XSwitch, when you change chkGeofence1.Top, the Top value is referenced according to the parent panels upper left corner.
If customview-B4XSwitch has the dimensions of chkGeofence1, then you should change customview-B4XSwitch.Top.

Again without knowing exactly what you have done, in detail, we need to guess it.
 
Upvote 0
unfortunately from within the code there is no property for chkGeofence1.Top it is only accessible from chkGeofence1.mBase.Top.

I have positioned it in the layout but when the layout is drawn it has moved and so i am trying to force it back to the correct position in code.
 
Upvote 0
Do you have 'Handle Resize Event' in false in Visual Designer?, Did you try put the code in Resize?
B4X: Copy
Private Sub page1_Resize (Width As Float, Height As Float)
chkGeoFence1.mBase.Top = 5
End Sub
 
Upvote 0
Thank you. Yes the Handle Resize Event is False. It does not work first time the applications loads the layout but subsequent refresh the same code works fine. Putting into a resize event clears the problem.
 
Upvote 0
I do not want to move the items. When the layout first loads in the app, they have moved from the layout position. Image 1 is after the app has loaded, image 2 is after a page resize event. The font also changes in the swiftbutton, not done in code. Image 2 is as the layout designer shows.
 

Attachments

  • IMG_1.jpg
    IMG_1.jpg
    455.5 KB · Views: 463
  • IMG_2.jpg
    IMG_2.jpg
    494.2 KB · Views: 503
Upvote 0
The anchors in the layout are all set for horizontal-left and Vertical-top.
This is the mistake.
The views at the bottom should be anchored to the bottom.

Start with the visual designer video tutorial: https://www.b4x.com/etp.html
Also check the "handle resize event" and delete the code in the Resize event.
 
Upvote 0
Back
Top