我在TabWidgets中实现了HorizontalScrollView来滚动标签。我怎么知道哪个 当用户滚动标签时,当前可以看到标签吗?
有没有办法找到当前可见的标签? 提前谢谢..
答案 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);
}
...
}
即使它对我有效,滚动的值也可能是错误的。希望它有所帮助:)