Android ScrollView jumps around when setting child visibility to View.GONE

Posted by Mike on Stack Overflow See other posts from Stack Overflow or by Mike
Published on 2010-06-15T20:39:58Z Indexed on 2010/06/15 20:42 UTC
Read the original article Hit count: 357

Filed under:
|

I have a ScrollView that contains an number of other views (TextViews, ImageViews, etc.). The ScrollView is taller than the screen. I have an AsyncTask that updates the children of the ScrollView based on an http response.

I've discovered an interesting behavior that I can't figure out how to work around. If I set any of the children's visibilities to View.INVISIBLE as part of the AsyncTask.onPostExecute(), everything works fine.

However, if I set any of the children's visibilities to View.GONE, the ScrollView jumps down from the top when onPostExecute() is called. Exactly how far seems to vary. I'm guessing that re-laying out the ScrollView is causing it to scroll away from the top for some reason.

So the question is: is there a way to either prevent or work around this behavior?

PS. Using ScrollView.jump(FOCUS_UP) as a workaround isn't ideal since that'll force the user to the top even if they had intended to scroll down.

© Stack Overflow or respective owner

Related posts about android

Related posts about scrollview