0

我有一个带有多个线性布局的滚动视图。每个线性布局都包含一些图像,单击图像时会显示一些细节,并在其下方打开一个框,如下图所示。

在此处输入图像描述

在此处输入图像描述

单击特定图像时,我想将该行滚动到滚动视图中的最顶部位置。例如。点击上图中的 H&R,我希望它出现在屏幕顶部,以便用户可以完全阅读内容。我的想法是在创建视图时获取滚动视图中的所有线性布局位置,并滚动到选定的行以使其显示在顶部。我试过了

getLocationOnScreen(location); 
view.getTop()

它总是返回 0。我在这里错过了什么吗?或者是否有其他方法可以实现相同的目标。有人可以提供一些输入吗?

4

1 回答 1

1

我通过获取每一行的位置解决了这个问题,当用户单击特定行时,我滚动到该位置,如下面的代码所示

    scrollView.post(new Runnable() {
                    @Override
                    public void run() {
                    scrollView.scrollTo(0, locationCorrespondingToTheSelectedRow));
                    }
                    });

不是最好的方法,但在我的情况下,因为屏幕是静态硬编码的,所以位置不是问题。

于 2013-06-21T06:12:49.677 回答