代码如下:
1.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="@dimen/size_565"
android:layout_height="@dimen/size_330"
android:layout_centerInParent="true">
</android.support.v4.view.ViewPager>
</RelativeLayout>
2.activity写法:
public class LandDialogActivity extends CommonActivity {
public static final String CLOSE = "LandDialogActivity.finsh";
@BindView(R.id.viewPager)
ViewPager viewPager;
@Autowired
int type;//0是个人中心,1是站内信,3是额度转换,2是登陆,4是注册,5是推广
@Override
protected int getLayoutId() {
return R.layout.activity_land_dialog_layout;
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WindowManager m = getWindowManager();
Display d = m.getDefaultDisplay(); // 为获取屏幕宽、高
android.view.WindowManager.LayoutParams p = getWindow().getAttributes();
p.width = d.getWidth(); // 宽度设置为屏幕的0.7
getWindow().setAttributes(p);
if (type == 0) {
showUserInfoFragment();
} else if (type == 1) {
showNewsFragment();
} else if(type==2)
showLogin();
else if(type==4)
showRegist();
else if(type==5)
showPopularizeFragment();
else if(type==6){
showActivityFragment();
}
else showChangeFragment();
}
//个人中心
private void showUserInfoFragment() {
ArrayList<Fragment> mFragments = new ArrayList<>();
mFragments.add(UserInFoFragment.instance("个人中心"));
viewPager.setAdapter(new OrderTabAdapter(getSupportFragmentManager(), mFragments, null));
viewPager.setOffscreenPageLimit(1);
}
//登陆
private void showLogin() {
viewPager.removeAllViews();
ArrayList<Fragment> mFragments = new ArrayList<>();
mFragments.add(LoginFragment.instance("登陆"));
viewPager.setAdapter(new OrderTabAdapter(getSupportFragmentManager(), mFragments, null));
viewPager.setOffscreenPageLimit(1);
}
//注册
private void showRegist() {
viewPager.removeAllViews();
ArrayList<Fragment> mFragments = new ArrayList<>();
mFragments.add(RegisterFragment.instance("注册"));
viewPager.setAdapter(new OrderTabAdapter(getSupportFragmentManager(), mFragments, null));
viewPager.setOffscreenPageLimit(1);
}
//站内信
private void showNewsFragment() {
viewPager.removeAllViews();
ArrayList<Fragment> mFragments = new ArrayList<>();
mFragments.add(NewsFragment.instance("站内信"));
viewPager.setAdapter(new OrderTabAdapter(getSupportFragmentManager(), mFragments, null));
}
private void showChangeFragment() {
viewPager.removeAllViews();
ArrayList<Fragment> mFragments = new ArrayList<>();
mFragments.add(TransferAmountFragment.instance("额度转换"));
viewPager.setAdapter(new OrderTabAdapter(getSupportFragmentManager(), mFragments, null));
}
private void showPopularizeFragment() {
ArrayList<Fragment> mFragments = new ArrayList<>();
mFragments.add(PopularizeFragment.instance("推广赚钱"));
viewPager.setAdapter(new OrderTabAdapter(getSupportFragmentManager(), mFragments, null));
viewPager.setOffscreenPageLimit(1);
}
private void showActivityFragment(){
viewPager.removeAllViews();
ArrayList<Fragment> mFragments = new ArrayList<>();
mFragments.add(ActivityDialogFragment.instance("活动"));
viewPager.setAdapter(new OrderTabAdapter(getSupportFragmentManager(), mFragments, null));
}
@Receive(CLOSE)
public void close(){
this.finish();
}
@Override
protected boolean isVertical() {
return false;
}
}
3.tableAdapter
public class OrderTabAdapter extends FragmentStatePagerAdapter {
private List<Fragment> fragments; //fragment列表
private List<String> titles; //tab名的列表
public OrderTabAdapter(FragmentManager fm,List<Fragment> fragments, Fragment mFragments) {
super(fm);
this.fragments = fragments;
this.titles = titles;
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}