将LinearLayout设置为可见,并调用getBottom



在我的应用程序中,我有一个ScrollViewLinearLayout,其可见性设置在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());
                }
            });

最新更新