我的布局包含按钮和textView,其中visibility =“gone”。这个布局是scrollView的子代。按下按钮时,textView可见性设置为“可见”,但它会溢出屏幕(这就是它在scrollView中的原因)。
我的问题是我想自动滚动到页面的末尾。
所以我试过了:
mySchrollView.fullScroll(View.FOCUS_DOWN);
但遗憾的是它不起作用。似乎布局将在onClick方法结束后更新(事实上,如果我再次调用此方法(新单击)它正在工作)。
所以我需要在调用fullScroll(...)之前刷新布局或屏幕;我尝试过refreshDrawableState()或forceLayout(),但它也没有用。
你知道如何解决它吗?
非常感谢
答案 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()