自己的
package com.mad.trafficclient.adapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.ArrayList;
/**
* 创建者:cc
* 创建时间:2018/9/3 15:45
* 修改时间:
* 修改备注:
* 描述: ViewPager加载Fragment时候使用 viewPager的PagerAdapter适配器
*/
public class fg7_FragementAdapter extends FragmentPagerAdapter{
private FragmentManager fragmentManager;
private ArrayList<Fragment> list;
public fg7_FragementAdapter(FragmentManager fm, ArrayList<Fragment> list) {
super(fm);
this.fragmentManager = fm;
this.list = list;
}
@Override//返回要显示的碎片
public Fragment getItem(int position) {
return list.get(position);
}
@Override//返回要显示多少页
public int getCount() {
return list.size();
}
}
调用:
public class fg7_GRZX extends FragmentHome {
private TextView fg7_tv_personal;
private TextView fg7_tv_CZjl;
private TextView fg7_tv_etc_set;
private ViewPager fg7_viewpager;
private ArrayList<Fragment> fragmentslist;
private fg7_FragementAdapter adapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fg7__grzx, container, false);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initView();//找到控件
}
private void initView() {
fg7_tv_personal = (TextView) getActivity().findViewById(R.id.fg7_tv_personal);
fg7_tv_CZjl = (TextView) getActivity().findViewById(R.id.fg7_tv_CZjl);
fg7_tv_etc_set = (TextView) getActivity().findViewById(R.id.fg7_tv_etc_set);
fg7_viewpager = (ViewPager) getActivity().findViewById(R.id.fg7_viewpager1);
fragmentslist = new ArrayList<>();
initData();
}
private void initData() {
//添加Fragment对象添加到Fragment集合中
PerInfoFragment perInfoFragment = new PerInfoFragment();
fragmentslist.add(perInfoFragment);
CZjlFragment cZjlFragment = new CZjlFragment();
fragmentslist.add(cZjlFragment);
Etcset_Fragment etcset_fragment = new Etcset_Fragment();
fragmentslist.add(etcset_fragment);
adapter = new fg7_FragementAdapter(getChildFragmentManager(), fragmentslist);
fg7_viewpager.setAdapter(adapter);
fg7_viewpager.setCurrentItem(0);
//当页面发生改变的时候
fg7_viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
//点击Text改变page
fg7_tv_personal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fg7_viewpager.setCurrentItem(0);
}
});
fg7_tv_CZjl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fg7_viewpager.setCurrentItem(1);
}
});
fg7_tv_etc_set.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fg7_viewpager.setCurrentItem(2);
}
});
}
}
网上找的一些
新建一个android项目
先展示效果吧
首先看myfragmentPagerAdater这个类的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
然后到MainActivity初始化ViewPager (这里还没有图片偏移和链接点击事件的代码 后面讲到)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
现在到MainActivity中的三个链接的点击代码(这三个是TextView来着)之后就可以点击实现页面调转,但是图片偏移还没实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
然后是图片偏移
1 2 3 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
最后是偏移图片跟着页面走 只需要在之前的 viewpager.setCurrentItem(0);后面添加即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
特别注意打包时候是打v4包(每个fragment也是打v4包)
1 2 3 4 5 |
|
TranslateAnimation参数说明:
float fromXDelta:这个参数表示动画开始的点离当前View X坐标上的差值;
float toXDelta, 这个参数表示动画结束的点离当前View X坐标上的差值;
float fromYDelta, 这个参数表示动画开始的点离当前View Y坐标上的差值;
float toYDelta, 这个参数表示动画开始的点离当前View Y坐标上的差值;
这4个参数确定移动的起点和终点
--------------------- 本文来自 超超CccC 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq_20553007/article/details/82465448?utm_source=copy