Android Question [SOLVED] ScrollView Changes Height When Loading Layout for The Second Time

Uederson Ferreira

Member
Licensed User
Hi all!
I am very new to B4A and I am having some dificulty to do something using scrollview.
I created a big panel with a lot of buttons on it as a layout file using Designer.
I am loading the layout file inside a scrollview.
When I first run the project, the panel is loaded ok inside the scrollview, but if I try to reload the layout, the scrollview height seems to change its value to less.
I attached a modified version of the project where you can hit the "Home" button to reload the layout file.

Thank you in advance!

Uederson
 

Attachments

  • AdroidDev.zip
    11.4 KB · Views: 179

An Schi

Well-Known Member
Licensed User
I haven't run your project cause i'm browsing the forum on the phone....
....but my own 'noob mistakes' come to my mind:
- do you remove the views before (re)loading another layout?
- are you aware that a scrollview has an important value - namely the inner panel height?
 
Upvote 0

klaus

Expert
Licensed User
Longtime User
What is btnHome supposed to do?
You should not reload the same layout!
You are mixing up some principles:
- You use AutoScaleAll.
- Then you resize all the views with %x and %y, this overrides AutoScale for the dimensions and position but not for the text size.
- And in the code you set scv.Panel.Height = 2500dip to a given fixed value 2500dip, why? You should use scv.Panel.Height = pnBotoes.Height.

If you turn the device to landscape the layout doesn't look good.
You should use AutoScaleAll and anchors.
You can play a bit with AutoScaleRate(x).
The default value is AutoScaleRate(0.3), you could test it with AutoScaleRate(0.5).

Attached you find a modified version.
 

Attachments

  • AdroidDev1.zip
    10.1 KB · Views: 204
Upvote 0

Uederson Ferreira

Member
Licensed User
Hi An Schi!
Yes! I remove the views and change the panel height.
Thank you by the reply!


Hi, Klaus!
On my final project I have some layouts.
I need to access every layout and in some point, I will need back to "principal" layout. This is what btnHome do (return to "principal").
I tried scv.Panel.Height = pnBotoes.Height, but when I use it everytime I reload the "pricipal" layout, the height of the panel seems to change, then the buttons change their height too (they grow up).
My app will work only in portrait.
I need learn more about scale.
I will check the tips you gave me!

[EDIT]
I think my problem was with the %x and %y, because now you setted the anchors, when I reload the layout, it is not changing the height!

Thank you so much!
 
Last edited:
Upvote 0
Cookies are required to use this site. You must accept them to continue using the site. Learn more…