1.导入所需的依赖
implementation 'com.android.support:design:28+'
2.activity_main.xml中布局`
上面的是TabLayout控件–下面是ViewPager
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
3.在MainActivity.java中查找到两个控件
//查找控件
tablayout = (TabLayout)findViewById( R.id.tablayout );
pager = (ViewPager)findViewById( R.id.pager );
4.在最上面定义两个集合–fragmentlist 和titlelist
//fragment集合
ArrayList<Fragment> fragmentlist = new ArrayList<>();
//标题的集合
ArrayList<String> titlelist = new ArrayList<>();
5.调用initData( ) 用来生成标题和fragment
//查找控件
tablayout = (TabLayout)findViewById( R.id.tablayout );
pager = (ViewPager)findViewById( R.id.pager );
//标题和fragment
initData();
-----具体方法如下-----
//标题和fragment
private void initData(){
for (int i = 1; i < 5; i++) {
titlelist.add( "八维第"+i+"校区" );
fragmentlist.add( new BlankFragment() );
}
}
6.给pager设置适配器
//设置适配器
MyPageAdapter adapter = new MyPageAdapter( getSupportFragmentManager() );
pager.setAdapter( adapter );
//适配器-MyPageAdapter
private class MyPageAdapter extends FragmentPagerAdapter{
public MyPageAdapter(FragmentManager fm) {
super( fm );
}
@Override
public Fragment getItem(int i) {
return fragmentlist.get( i );
}
@Override
public int getCount() {
return titlelist.size();
}
//当前页面的标题
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titlelist.get( position );
}
}//适配器
7.把tablayout和pager关联起来
//设置适配器
MyPageAdapter adapter = new MyPageAdapter( getSupportFragmentManager() );
pager.setAdapter( adapter );
//把tablayout和pager关联起来
tablayout.setupWithViewPager( pager );
8.创建一个BlankFragment.java文件
public class BlankFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
TextView textView = new TextView( getActivity() );
//Bundle bundle = getArguments();
double random = Math.random();
textView.setText( "今天中彩票的几率为:"+random );
return textView;
}
}