【问题标题】:Android: how to force ScrollView layout, and then scroll to a point?Android:如何强制ScrollView布局,然后滚动到一个点?
【发布时间】:2012-05-10 17:05:32
【问题描述】:

我有一个 ScrollView,我正在向其中添加一些自定义视图。添加自定义视图后,我希望能够滚动到特定视图。但是,在添加自定义视图后,ScrollView 没有调整大小,所以我不能滚动。知道如何强制调整大小吗?

for(int i = 0, i < numberOfViews, i++)
{
  scrollView.addView(new MyView(...));
}

//tried this, doesn't seem to be helpful 
scrollView.requestLayout();

//at this point scrollView dimensions are 0,0,0,0 
scrollView.scrollTo(5, 200);

【问题讨论】:

    标签: android scrollview


    【解决方案1】:

    我不完全确定您要做什么,但我想一直向下滚动,但不能这样做:我必须这样做:

    ((ScrollView) findViewById(R.id.yourId)).post(new Runnable() {
             public void run() {
                 ((ScrollView) findViewById(R.id.yourId)).fullScroll(View.FOCUS_DOWN);
             }
     });
    

    稍后会更新,所以你的观点是:)

    【讨论】:

    • 谢谢,我试过了。即使我使用 post(...) 方法,当 fullScroll(...) 方法执行时,ScrollView 的高度仍然为 0(我可以通过调试来判断,并在 fullScroll(...) 方法中放置一个断点) .
    【解决方案2】:

    一个优雅的解决方案是计划滚动并在下一个 onLayout() 上执行。示例代码:

    https://stackoverflow.com/a/10209457/1310343

    【讨论】:

      猜你喜欢
      • 2011-05-06
      • 1970-01-01
      • 2016-02-15
      • 2018-09-15
      • 2016-10-07
      • 1970-01-01
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多