有没有办法在horizo​​ntalScrollVIew中找到当前可见的标签?

时间:2011-08-24 08:20:09

标签: android

我在TabWidgets中实现了Horizo​​ntalScrollView来滚动标签。我怎么知道哪个 当用户滚动标签时,当前可以看到标签吗?

有没有办法找到当前可见的标签? 提前谢谢..

3 个答案:

答案 0 :(得分:0)

滚动视图中没有“表格”,这很困难。

答案 1 :(得分:0)

如果你知道每个标签的宽度(我假设它们都是相同的)。你会知道每个视图的起始位置和结束位置。

使用

HorizontalScrollView.getScrollX();

您将能够计算视图是否可见。因为你也会知道水平滚动视图的起点和终点。

根据您的评论。

HorizontalScrollView.getLeft()
HorizontalScrollView.getRight()

您可以使用它们来查找滚动视图是向左还是向右翻转以切换箭头。

还有一个

hsv.getMaxScrollAmount()

应该用来找到右端,左边应该是0我猜。

<强>更新

我今天发现了这个。

View.willNotDraw()

水平滚动视图旁边的按钮应该有这个方法。检查,如果这有帮助。我想这会告诉你是否画了一个视图。

答案 2 :(得分:0)

我刚刚为我解决了这个问题。尝试在PagerAdapter上实现此功能

class MyPagerAdapter extends PagerAdapter {
                      ...

    public void onPageSelected(int position) {          

        // This makes the TabHost scroll to certain x position 
        // determined by scrollPos
        View tabView = mTabHost.getChildAt(position);
        final int scrollPos = (int) (mTabHost.getWidth() * (position / (double) Math.pow(getCount(),2)));
        hScrollView.smoothScrollTo(scrollPos, 0);
    }
                             ...
}

即使它对我有效,滚动的值也可能是错误的。希望它有所帮助:)