最近做练习用到了HorizontalScrollView和ViewPager。头部导航是HorizontalScrollView(里面放的是RadioButton。),新闻列表是ViewPager+listview。要求是当滑动ViewPager时,头部导航要滚动到指定栏目。
刚开始,想到用每一个按钮的长度和设备宽度做比较实现setScrollX(),不过没做出来,希望有实现的大神可以分享思路或者代码。
同时,这里有一个特别简单的方式就能实现以上要求,即只需要在ViewPager的滚动监听中设置滚动条就可以,效果也差强人意。
代码:
/*
这里是ViewPager中的滚动监听
*/
@Override
public void onPageSelected(int position) {
//获取滚动条
HorizontalScrollView hz = (HorizontalScrollView)findViewById(R.id.main_scrollView);
/*
radioButton.getWidth()为滚动挑中每一项的长度
通过循环,每切换到一个页面,滚动条都从默认状态(即最左边)滚动(radioButton.getWidth()* i)距离
*/
for (int i = 0; i <= position; i++) {
hz.setScrollX(radioButton.getWidth()* i);
}
}
还有第三方插件PagerSlidingTabStrip可以实现,具体以后更新。
本文介绍了一种HorizontalScrollView与ViewPager结合使用的方案,通过简单的代码实现了头部导航与内容页的同步滚动。文中提供了具体的实现思路及代码示例。
867

被折叠的 条评论
为什么被折叠?



