I’ve got a situation that I’m rather stumped about. Turning here for some help and let me do my best to explain.
The main page of my web app has a container control that can contain a number of controls. The number of controls may vary from installation to installation. If there are more controls than available space, the container control scrolls. And as the window size is adjusted, the container control adjusts. This works fine and great on the desktop and even the iPad.
iPhone is where I get into trouble.
So on the iPhone, the size is much smaller. I have things set up so that when in portrait mode, I get basically two controls per row and multiple rows and they scroll fine. Landscape is where the problem occurs. In Landscape mode, I can get about 4 controls in a row. If I have more than about 3 rows, the container control scrolls fine. If I have say two rows, it’s problematic. The container control will scroll fine if the page is opened in landscape mode. However, if I rotate to portrait (it works just fine) and then back to landscape, I lose the ability to scroll. It just doesn’t work. If I completely refresh the page again, then scrolling comes back.
I’m using the same methods to calculate where the controls go and how large/small to make the container control in both instances of creating a brand new page (i.e. startup or a manual page refresh) and in simple rotating/resizing the page. But I lose the scrolling.
If I look at all the values, everything looks fine like it should work. The container control is smaller than the coordinates of the second row of controls. The second row of controls is there with the right coordinates. I can manually make the container control larger and show parts of the second row of controls. But I cannot get it to scroll. It just won’t do it.
It seems like it has something to do with the size of the container when the page is constructed in the browser vs. when the code finally executes and the browser just doesn’t update itself. I’ve tried making container control size adjustments with timers, etc. I cannot figure this out.
It’s quirks like this that just get me really frustrated when working with Xojo Web projects. It seems like everything you have to do is almost a work-around. You can’t just simply code and have it work right.
Anyhow, off that rant and back to the topic at hand - Anyone have any ideas for me here? I’ve thought about using the container control as an embedded container control and simply removing it and re-embedding it on any rotation. But that’s kind of a mess and a headache for a LOT of other reasons that I won’t go into here.
And it’s frustrating because with enough controls on the container control - things work just fine. It’s this in-between never-never land that is the issue.
It’s also frustrating because the usage of my web app with an iPhone with this specific number of controls in landscape orientation is a corner case. It may never really be needed. But I’m anal enough that this drives me nuts and I don’t want the product to have this bug. But I’ve spent the last 5 days or so trying different things to figure it out but I can’t. So help!
Thanks,
Jon