在我的应用程序中,我有一个ScrollView
和LinearLayout
,其可见性设置在GONE
上。我需要让它可见,然后让我的ScrollView滚动到LinearLayout的底部。为此,我使用了以下代码:
mLinearLayout.setVisibility(View.VISIBLE);
mScrollView.smoothScrollTo(0, mLinearLayout.getBottom());
然而,这是行不通的。当ScrollView被要求滚动时,LinearLayout在getBottom()上仍然返回0。
因此,当第一次调用时,LinearLayout是可见的,但滚动视图没有滚动。当第二次调用时,它确实会向下滚动到正确的位置。
我该怎么解决这个问题?
您需要将smmothScrollTo方法放入这样的新线程中:
mScrollView.post(new Runnable() {
public void run() {
mScrollView.smoothScrollTo(0,mLinearLayout.getBottom());
}
});