![](https://img.haomeiwen.com/i19229798/99aadc544998a924.png)
![](https://img.haomeiwen.com/i19229798/a2568ade3118d9d8.png)
第一步:导入TabView的design包
implementation 'com.android.support:design:28.0.0'
第二步:在布局文件中添加viewpager和Tabview
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v4.view.ViewPager
android:id="@+id/main_viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<android.support.design.widget.TabLayout
android:id="@+id/main_tabLayout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#F7F7F7"
app:tabIndicatorColor="#88E7FF"
app:tabIndicatorHeight="2dp"
app:tabTextColor="@color/black"
app:tabSelectedTextColor="#88E7FF"
app:tabMode="fixed"
></android.support.design.widget.TabLayout>
</LinearLayout>
第三步:建立Fragment(根据要显示的内容来建立)
![](https://img.haomeiwen.com/i19229798/08d56eb7016c8656.png)
di'wu'b
第四步:在acyivity中建立viewpagerh和Tabview,Fragment对象
这里ButterKinfe出现了问题,导致这个为空对象,不得不再findviewbyid()
@BindView(R.id.main_viewPager)//为什么这里是空对象?
ViewPager viewPager;
@BindView(R.id.main_tabLayout)
TabLayout tabLayout;
private NewsFragment newsFragment;
private WeatherFragment weatherFragment;
private MenuFragment menuFragment;
第五步:建立ViewPager适配器:MainTabAdapter
public class MainTabAdapter extends FragmentPagerAdapter {
private String[] mTitles=new String[]{"菜单","新闻","天气"};
private List<Fragment> fragments;
public MainTabAdapter(FragmentManager fm) {
super(fm);
}
public void setFragments(List<Fragment> fragments){
this.fragments=fragments;
}
@Override
public Fragment getItem(int i) {
if (i == 1) {
return fragments.get(1);
//fragment_order_all,fragment_order_confirm,fragment_order_pickup
} else if (i == 2) {
return fragments.get(2);
} else {
return fragments.get(0);}
}
@Override
public int getCount() {
return mTitles.length;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {//设置页面标题
return mTitles[position];
}
}
第六步:建立在activity中建立initFragment方法,并且在onCreat中调用:
private void initFragment() {
List<Fragment> fragments = new ArrayList<>();
newsFragment = new NewsFragment();
weatherFragment = new WeatherFragment();
menuFragment = new MenuFragment();
fragments.add(menuFragment);
fragments.add(newsFragment);
fragments.add(weatherFragment);
MainTabAdapter mainTabAdapter = new MainTabAdapter(getSupportFragmentManager());
mainTabAdapter.setFragments(fragments);
viewPager=findViewById(R.id.main_viewPager);
tabLayout=findViewById(R.id.main_tabLayout);
viewPager.setOffscreenPageLimit(2);//加载全部页面
viewPager.setAdapter(mainTabAdapter);
tabLayout.setupWithViewPager(viewPager);
}
网友评论