viewpager fragment 滑动界面
作者:互联网
先新建几个fragment,包括java和xml
然后在主界面的布局文件中:
<android.support.v4.view.ViewPager android:id="@+id/main_viewpager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="9"> </android.support.v4.view.ViewPager>
然后在java中,实现viewpager的适配器,其中imageMove函数是用来选择时让下方标签的阴影做一个平移动画。
class MyFrageStatePagerAdapter extends FragmentStatePagerAdapter { private List<Fragment> fragmentlist; public MyFrageStatePagerAdapter(FragmentManager fm, List<Fragment> fragmentlist2) { super(fm); fragmentlist = fragmentlist2; } @Override public Fragment getItem(int position) { return fragmentlist.get(position); } @Override public int getCount() { return fragmentlist.size(); } /** * 每次更新完成ViewPager的内容后,调用该接口,此处复写主要是为了让导航按钮上层的覆盖层能够动态的移动 */ @Override public void finishUpdate(ViewGroup container) { super.finishUpdate(container);//这句话要放在最前面,否则会报错 //获取当前的视图是位于ViewGroup的第几个位置,用来更新对应的覆盖层所在的位置 int currentItem=main_viewpager.getCurrentItem(); if (currentItem==currenttab) { return ; } imageMove(main_viewpager.getCurrentItem()); currenttab=main_viewpager.getCurrentItem(); } } /** * 移动覆盖层 * @param moveToTab 目标Tab,也就是要移动到的导航选项按钮的位置 * 第一个导航按钮对应0,第二个对应1,以此类推 */ private void imageMove(int moveToTab) { int startPosition=0; int movetoPosition=0; startPosition=currenttab*(screenWidth/4); movetoPosition=moveToTab*(screenWidth/4); //平移动画 // TranslateAnimation translateAnimation=new TranslateAnimation(startPosition,movetoPosition, 0, 0); // translateAnimation.setFillAfter(true); // translateAnimation.setDuration(200); // imageviewOvertab.startAnimation(translateAnimation); }
fragmentList = new ArrayList<Fragment>(); fragmentList.add(new MessageFragment()); fragmentList.add(new FriendsFragment()); fragmentList.add(new FunctionFragment()); fragmentList.add(new MineFragment()); // main_viewpager.setAdapter(new MyFrageStatePagerAdapter(getSupportFragmentManager(),fragmentList));
标签:fragmentList,fragment,viewpager,int,add,滑动,new,main 来源: https://www.cnblogs.com/zhaozilongcjiajia/p/10405845.html