一、xml 布局中
1、Activity xml
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="54dp" />
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
2、Fragment xml
android:id="@+id/title"
android:textSize="20sp"
android:gravity="center"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_blank_fragment" />
二、Activity中
private TabLayout tablayout;
private ViewPager vp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
List fragments = new ArrayList<>();
List strings = new ArrayList<>();
String[] titles = {"A", "B", "C", "D", "E"};
strings.addAll(Arrays.asList(titles));
for (String string : strings) {
BlankFragment fragment = new BlankFragment();
Bundle bundle = new Bundle();
bundle.putString("title" , string);
fragment.setArguments(bundle);
fragments.add(fragment);
}
FragmentAdapter adadpter = new FragmentAdapter(getSupportFragmentManager(), fragments, strings);
vp.setAdapter(adadpter);
tablayout.setupWithViewPager(vp);
}
private void initView() {
tablayout = (TabLayout) findViewById(R.id.tablayout);
vp = (ViewPager) findViewById(R.id.vp);
}
三、适配器中
public class FragmentAdapter extends FragmentStatePagerAdapter {
private List fragments;
private List strings;
public FragmentAdapter(FragmentManager fm, List fragments, List strings) {
super(fm);
this.fragments = fragments;
this.strings = strings;
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return strings.get(position);
}
}
四、Fragment中
public class BlankFragment extends Fragment {
private TextView title;
private String title1;
private String title2;
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser){
Bundle arguments = getArguments();
title1 = arguments.getString("title");
Log.e("TAG" , title1 +":::::::::");
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View inflate = inflater.inflate(R.layout.fragment_blank, container, false);
initView(inflate);
Bundle arguments = getArguments();
title2 = arguments.getString("title");
Log.e("TITLE" , title2 +":::::::::");
this.title.setText(title1);
return inflate;
}
private void initView(View inflate) {
title = (TextView) inflate.findViewById(R.id.title);
}
}