如何在android中刷新视图

时间:2011-12-16 12:45:33

标签: android layout refresh

我的布局包含按钮和textView,其中visibility =“gone”。这个布局是scrollView的子代。按下按钮时,textView可见性设置为“可见”,但它会溢出屏幕(这就是它在scrollView中的原因)。

我的问题是我想自动滚动到页面的末尾。

所以我试过了:

mySchrollView.fullScroll(View.FOCUS_DOWN);

但遗憾的是它不起作用。似乎布局将在onClick方法结束后更新(事实上,如果我再次调用此方法(新单击)它正在工作)。

所以我需要在调用fullScroll(...)之前刷新布局或屏幕;我尝试过refreshDrawableState()或forceLayout(),但它也没有用。

你知道如何解决它吗?

非常感谢

5 个答案:

答案 0 :(得分:2)

你可以这样做:

yourText.setVisibility(View.VISIBLE);
schrollView.post(new Runnable{
    @Override
    public void run(){
        schrollView.fullScroll(View.FOCUS_DOWN);
    }
}

当已经安排的所有其他内容(例如布局)完成后,将处理fullScroll()。
如果由于某种原因这不起作用,您可以使用postDelayed(runnable, 100);(使用与上例相同的runnable),视图将在100毫秒后滚动。

答案 1 :(得分:1)

你试过requestLayout()

吗?

答案 2 :(得分:0)

您是否尝试过调用“schrollView.requestLayout()”或“schrollView.invalidate()”? (顺便说一下,它不应该被称为“scrollView”吗?)

答案 3 :(得分:0)

您可以使用方法schrollView.smoothScrollTo(x,y)。 因此,在您的情况下,代码将如下所示:

schrollView.smoothScrollTo(0, deviceHeight);

答案 4 :(得分:0)

尝试使用自{api 11 ??

以来可用的recreate()