关于控件A设置了visibility控件B被挤压的问题

我有一个垂直线性布局,上面的是控件A,下面的是控件B(控件B是listview)。
起初控件A 是gone状态。控件B占据整个布局的高且控件B scroll到最底部。当触发了某事件,我设置控件A的状态变为visible。控件B被挤压了一部分。此时!问题来了,控件B会自动scroll到顶部。好像控件B 重绘了一样?我想知道设置完visible,控件B调用了哪个方法?

底层系统图形会自动刷新屏幕 。 ListView里面有可以调整滚动条的位置。
ListView.smoothScrollToPosition(0);//顶部
ListView.smoothScrollToPosition(listView.getCount() - 1);//底部

当控件设置成gone的时候,是不占任何空间的,
当你将它设置成可见的时候,相当于重新将这个控件加入到布局中区,
addview会被调用,addview里面的postInvalidate()会被触发。所以会刷新整个界面。
所以你的listview就自动回到了顶端,不过我觉得不应该出现这种情况的,你可以检查一下你的代码,我觉得是代码的问题