将LinearLayout设置为visible并调用getBottom

时间:2013-08-19 12:31:40

标签: android android-linearlayout android-scrollview

在我的应用中,我有一个ScrollView,其LinearLayout的可见性设置在GONE。 我需要让它可见,然后让我的ScrollView滚动到LinearLayout的底部。 为此,我使用此代码:

mLinearLayout.setVisibility(View.VISIBLE);
mScrollView.smoothScrollTo(0, mLinearLayout.getBottom());

然而,这不起作用。当要求ScrollView滚动时,LinearBayout仍然在getBottom()上返回0。

因此,当第一次调用它时,LinearLayout可见,但是scrollview尚未滚动。 当它第二次被调用时,它会向下滚动到正确的位置。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您需要将smmothScrollTo方法放在一个新的线程中:

     mScrollView.post(new Runnable() {
                public void run() {
                    mScrollView.smoothScrollTo(0,mLinearLayout.getBottom());

                }
            });