一、xml 布局中
1、Fragment 的xml
<android.support.design.widget.TabLayout
android:id="@+id/mTabb"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/mViewPab"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v4.view.ViewPager>
二、Fragment中
private TabLayout mTabb;
private ViewPager mViewPab;
private ArrayList<Fragment> mFragment = new ArrayList<>();
private ArrayList<String> mString = new ArrayList<>();
private String[] bb = new String[]{
"http://c.m.163.com/nc/article/headline/T1348647909107/0-20.html",
"http://c.m.163.com/nc/article/headline/T1348647909107/0-20.html",
"http://c.m.163.com/nc/article/list/T1348648756099/0-20.html",
};
private MyPagerAdapter myPagerAdapter2;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View inflate = inflater.inflate(R.layout.fragment_b, container, false);
initView(inflate);
return inflate;
}
@Override
public void onStart() {
super.onStart();
//注册EventBus
EventBus.getDefault().register(this);
}
//接收EventBus传来信息的方法,
@Subscribe(threadMode = ThreadMode.MAIN ,sticky = true)
public void tobList(List<String> list){
// Log.e( "tobList: ", list.toString());
mString.addAll(list);
mTabb.setupWithViewPager(mViewPab);
myPagerAdapter2.notifyDataSetChanged();
}
@Override
public void onStop() {
super.onStop();
//接触注册EventBus 节省空间
EventBus.getDefault().unregister(this);
}
private void initView(View inflate) {
initData() ;
mTabb = (TabLayout) inflate.findViewById(R.id.mTabb);
mViewPab = (ViewPager) inflate.findViewById(R.id.mViewPab);
for (int i = 0; i <mString.size() ; i++) {
TwoFragment twoFragment = new TwoFragment();
//传值
Bundle bundle1 = new Bundle();
bundle1.putString("爱你哒2", bb[i]);
twoFragment.setArguments(bundle1);
mFragment.add(twoFragment);
//复用Fragment
}
myPagerAdapter2 = new MyPagerAdapter(getChildFragmentManager(), mFragment, mString);
mViewPab.setAdapter(myPagerAdapter2);
mTabb.setupWithViewPager(mViewPab);
}
private void initData() {
mString.add("美女");
mString.add("福利");
mString.add("生活");
}
}
三、适配器中
public class MyPagerAdapter extends FragmentPagerAdapter {
private ArrayList<Fragment> mFragment ;
private ArrayList<String> mString ;
public MyPagerAdapter(FragmentManager fm, ArrayList<Fragment> mFragment, ArrayList<String> mString) {
super(fm);
this.mFragment = mFragment;
this.mString = mString;
}
@Override
public Fragment getItem(int position) {
return mFragment.get(position);
}
@Override
public int getCount() {
return mFragment.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return mString.get(position);
}
}