例如,我有这样的布局:
<ScrollView>
<LinearLayout>
<LinearLayout>
...
</LinearLayout>
<LinearLayout>
...
</LinearLayout>
<LinearLayout>
<TextView>
</TextView>
</LinearLayout>
</LinearLayout>
</ScrollView>
我的TextView内容很长.现在我可以手动滚动ScrollView到TextView内容的末尾.在代码中,我写道:scrview.scrollTo(0,800);,scrview是我的ScrollView.它应该滚动到TextView内容的中间.但是在运行时,它只会滚动到TextView的开头,无法滚动TextView内容.
有人知道导致这个问题的原因吗?
编辑:我找到了.好像我太早叫做scrollTo了.运用
scrview.post(new Runnable() {
public void run() {
scrview.scrollTo(0,800);
}
});
相反,它的工作原理.为任何遇到同样问题的人发布答案.
解决方法
首先,如果所有的LinearLayouts具有相同的方向,为什么不只是创建一次? 如果我没错,ScrollView只能有1个孩子(1个直接孩子).也许这可能是你遇到问题的原因. 但是,如果你仍然需要这3个LinearLayouts,你可以创建一个FrameLayout作为父级来保存它们并使FrameLayout成为ScrollView的子级