[size=medium] 将ViewPager和QEndBar结合起来,点击图标时切换ViewPager页面,ViewPager滑动时改变图标状态。打开QEndBar.java,定义ViewPager对象viewPager,新建一个函数setViewPager():[/size]
[size=medium]传进来一个ViewPager对象,为它设置一个监听器OnPageChangeListener,提示方法过时了,但没找到代替的,暂时用着。两个方法onPageSelected,页面选择,参数position选择的第几页,此函数中实现选择不同页面时,QEndBar图标的变化:[/size]
[size=medium] 将选中页的Alpha值设为255,其他为0,刷新。MainActivity.java中定义QEndBar对象qeb_main,从xml中获取为对象初始化,不多说,在ViewPager对象vp_main初始化后(从xml中引入,设置Adapter后),调用qeb_main.setViewPager(vp_main);(刚定义的方法),保存运行。[/size]
[img]http://dl2.iteye.com/upload/attachment/0124/2480/13a8845e-765e-384e-9b30-aff99275880d.gif[/img]
[color=gray][size=medium]注:这是一个.gif动图,ctrl点击图片查看。[/size][/color]
[size=medium] 点击图标ViewPager并不随更换页面,在onTouchEvent中改变图标状态的地方加入:[/size]
[size=medium] X为页数,false无ViewPager滑动动画(可以试试true),为了观察页面变化,复制fragment_home.xml,三份分别为fragment_list,fragment_message,fragment_user,并修改其中的TextView显示:主页,列表,消息,用户。复制HomeFragment.java,三份分别为ListFragment,MessageFragment,UserFragment,并修改其中要引入的布局一一对应,保存。MainActivity中FragmentPagerAdapter中,getItem修改:[/size]
[size=medium] ListFragment名字和其他包有重的,别导错。运行。[/size]
[img]http://dl2.iteye.com/upload/attachment/0124/2482/93b7de6f-910a-3eec-9000-a87d8bfaea5d.gif[/img]
[color=gray][size=medium]注:这是一个.gif动图,ctrl点击图片查看。[/size][/color]
[align=right][size=medium]持之以恒——2016/10/27[/size][/align]
public void setViewPager(ViewPager viewPager){
if(this.viewPager!=null){
this.viewPager.setOnPageChangeListener(null);
}
this.viewPager=viewPager;
this.viewPager.setOnPageChangeListener(new On…Listener() {
@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(……) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}
[size=medium]传进来一个ViewPager对象,为它设置一个监听器OnPageChangeListener,提示方法过时了,但没找到代替的,暂时用着。两个方法onPageSelected,页面选择,参数position选择的第几页,此函数中实现选择不同页面时,QEndBar图标的变化:[/size]
if(position>=0&&position<=3){
alphaItem[position]=255;
if(position==0){
alphaItem[1]=0;
alphaItem[2]=0;
alphaItem[3]=0;
}
else if(position==1){
alphaItem[0]=0;
alphaItem[2]=0;
alphaItem[3]=0;
}
else if(position==2){
alphaItem[0]=0;
alphaItem[1]=0;
alphaItem[3]=0;
}
else{
alphaItem[0]=0;
alphaItem[1]=0;
alphaItem[2]=0;
}
postInvalidate();
}
[size=medium] 将选中页的Alpha值设为255,其他为0,刷新。MainActivity.java中定义QEndBar对象qeb_main,从xml中获取为对象初始化,不多说,在ViewPager对象vp_main初始化后(从xml中引入,设置Adapter后),调用qeb_main.setViewPager(vp_main);(刚定义的方法),保存运行。[/size]
[img]http://dl2.iteye.com/upload/attachment/0124/2480/13a8845e-765e-384e-9b30-aff99275880d.gif[/img]
[color=gray][size=medium]注:这是一个.gif动图,ctrl点击图片查看。[/size][/color]
[size=medium] 点击图标ViewPager并不随更换页面,在onTouchEvent中改变图标状态的地方加入:[/size]
if(viewPager!=null){
viewPager.setCurrentItem(X,false);
}
[size=medium] X为页数,false无ViewPager滑动动画(可以试试true),为了观察页面变化,复制fragment_home.xml,三份分别为fragment_list,fragment_message,fragment_user,并修改其中的TextView显示:主页,列表,消息,用户。复制HomeFragment.java,三份分别为ListFragment,MessageFragment,UserFragment,并修改其中要引入的布局一一对应,保存。MainActivity中FragmentPagerAdapter中,getItem修改:[/size]
if(position==0){
return new HomeFragment();
}
else if(position==1){
return new ListFragment();
}
else if(position==2){
return new MessageFragment();
}
else if(position==3){
return new UserFragment();
}
return new HomeFragment();
[size=medium] ListFragment名字和其他包有重的,别导错。运行。[/size]
[img]http://dl2.iteye.com/upload/attachment/0124/2482/93b7de6f-910a-3eec-9000-a87d8bfaea5d.gif[/img]
[color=gray][size=medium]注:这是一个.gif动图,ctrl点击图片查看。[/size][/color]
[align=right][size=medium]持之以恒——2016/10/27[/size][/align]