左右滑动控件ViewPager小例子

————————————————–Activity————————————————-

注:如果版本在3.0以下要导入android-support-v4.jar包,标题指引用ViewPager Indicator更方便哦!下次有时间再分享!

public class VpMainActivity extends FragmentActivity implements View.OnClickListener, OnPageChangeListener {

/** 多页面滑动控件ViewPager*/private ViewPager mViewPager;/** 滑动包含的多个页面 */private ArrayList<Fragment> mFragmentList;/** 导航菜单下的白色下划线 */private ImageView mBottomIv;/**各个页面展示的初始内容*/private TextView mTabActivity, mTabGroups, mTabFriends, mTabChat;/** 当前页所在位置 */private int currIndex = 0;/** 白色下划线宽度 */private int bottomLineWidth;/** 动画效果之偏移量 */private int offset = 0;/** 动画效果*/private int position_one;private int position_two;private int position_three;/**资源工具类*/private Resources resources;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_vp_main);resources = getResources();initViews();initWidth();initViewPager();}private void initViews() {mTabActivity = (TextView) findViewById(R.id.tv_tab_activity);mTabGroups = (TextView) findViewById(R.id.tv_tab_groups);mTabFriends = (TextView) findViewById(R.id.tv_tab_friends);mTabChat = (TextView) findViewById(R.id.tv_tab_chat);mViewPager = (ViewPager) findViewById(R.id.vPager);mBottomIv = (ImageView) findViewById(R.id.iv_bottom_line);mTabActivity.setOnClickListener(this);mTabGroups.setOnClickListener(this);mTabFriends.setOnClickListener(this);mTabChat.setOnClickListener(this);mViewPager.setOnPageChangeListener(this);}private void initViewPager() {mFragmentList = new ArrayList<Fragment>();Fragment activityfragment = TestFragment.newInstance("Hello Tongshi..");Fragment groupFragment = TestFragment.newInstance("Hello Jiaren..");Fragment friendsFragment = TestFragment.newInstance("Hello Moshengren..");Fragment chatFragment = TestFragment.newInstance("Hello Wuliaoren..");/**加入页面*/mFragmentList.add(activityfragment);mFragmentList.add(groupFragment);mFragmentList.add(friendsFragment);mFragmentList.add(chatFragment);/**加载适配器数据*/mViewPager.setAdapter(new MyAdapter(getSupportFragmentManager(), mFragmentList));/**默认选中第一个页面*/mViewPager.setCurrentItem(0);}private void initWidth() {/**白色下划线宽度*/bottomLineWidth = mBottomIv.getLayoutParams().width;DisplayMetrics dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);/**屏幕宽度*/int screenW = dm.widthPixels;/**偏移量*/offset = (int) ((screenW / 4.0 – bottomLineWidth) / 2);position_one = (int) (screenW / 4.0);position_two = position_one * 2;position_three = position_one * 3;}@Overridepublic void onClick(View v) {mViewPager.setCurrentItem(v.getId());}@Overridepublic void onPageScrollStateChanged(int arg0) {}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {}@Overridepublic void onPageSelected(int arg0) {Animation animation = null;switch (arg0) {case 0:/**动画效果*/if (currIndex == 1) {animation = new TranslateAnimation(position_one, 0, 0, 0);mTabGroups.setTextColor(resources.getColor(R.color.lightwhite));} else if (currIndex == 2) {animation = new TranslateAnimation(position_two, 0, 0, 0);mTabFriends.setTextColor(resources.getColor(R.color.lightwhite));} else if (currIndex == 3) {animation = new TranslateAnimation(position_three, 0, 0, 0);mTabChat.setTextColor(resources.getColor(R.color.lightwhite));}mTabActivity.setTextColor(resources.getColor(R.color.white));break;case 1:/**动画效果*/if (currIndex == 0) {animation = new TranslateAnimation(offset, position_one, 0, 0);mTabActivity.setTextColor(resources.getColor(R.color.lightwhite));} else if (currIndex == 2) {animation = new TranslateAnimation(position_two, position_one, 0, 0);mTabFriends.setTextColor(resources.getColor(R.color.lightwhite));} else if (currIndex == 3) {animation = new TranslateAnimation(position_three, position_one, 0, 0);mTabChat.setTextColor(resources.getColor(R.color.lightwhite));}mTabGroups.setTextColor(resources.getColor(R.color.white));break;case 2:/**动画效果*/if (currIndex == 0) {animation = new TranslateAnimation(offset, position_two, 0, 0);mTabActivity.setTextColor(resources.getColor(R.color.lightwhite));} else if (currIndex == 1) {animation = new TranslateAnimation(position_one, position_two, 0, 0);mTabGroups.setTextColor(resources.getColor(R.color.lightwhite));} else if (currIndex == 3) {animation = new TranslateAnimation(position_three, position_two, 0, 0);mTabChat.setTextColor(resources.getColor(R.color.lightwhite));}mTabFriends.setTextColor(resources.getColor(R.color.white));break;case 3:/**动画效果*/if (currIndex == 0) {animation = new TranslateAnimation(offset, position_three, 0, 0);mTabActivity.setTextColor(resources.getColor(R.color.lightwhite));} else if (currIndex == 1) {animation = new TranslateAnimation(position_one, position_three, 0, 0);mTabGroups.setTextColor(resources.getColor(R.color.lightwhite));} else if (currIndex == 2) {animation = new TranslateAnimation(position_two, position_three, 0, 0);mTabFriends.setTextColor(resources.getColor(R.color.lightwhite));}mTabChat.setTextColor(resources.getColor(R.color.white));break;}/**当前白色下划线位置*/currIndex = arg0;/**保留在终止位*/animation.setFillAfter(true);/**设置动画持续时间*/animation.setDuration(300);/**启动动画*/mBottomIv.startAnimation(animation);}public static class MyAdapter extends FragmentStatePagerAdapter {private ArrayList<Fragment> fragmentsList;public MyAdapter(FragmentManager fm) {super(fm);}public MyAdapter(FragmentManager fm, ArrayList<Fragment> fragments) {super(fm);this.fragmentsList = fragments;}@Overridepublic int getCount() {return fragmentsList.size();}@Overridepublic Fragment getItem(int position) {return fragmentsList.get(position);}}

————————————————————————Fragment—————————————————–

追寻爱情,然后发现,爱,从来就是一件千回百转的事。

左右滑动控件ViewPager小例子

相关文章:

你感兴趣的文章:

标签云: