引入material库:
implementation 'com.google.android.material:material:1.2.1'
<?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" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent"> <com.google.android.material.tabs.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="40dp" android:layout_gravity="center_horizontal"> </com.google.android.material.tabs.TabLayout> <androidx.viewpager.widget.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/> </LinearLayout>
public class MainActivity extends AppCompatActivity { private ViewPager viewPager; private TabLayout tabLayout; private ViewPagerAdapter pagerAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pagerAdapter = new ViewPagerAdapter(getSupportFragmentManager() ); viewPager = (ViewPager) findViewById(R.id.view_pager); viewPager.setAdapter(pagerAdapter); tabLayout = findViewById(R.id.tab_layout); tabLayout.setupWithViewPager(viewPager); tabLayout.setTabMode(TabLayout.MODE_FIXED); } }
public class ViewPagerAdapter extends FragmentPagerAdapter { private String[] title = {"我的", "发现", "朋友"}; public ViewPagerAdapter(FragmentManager fm) { super( fm); } @Override public Fragment getItem(int i) { switch (i) { case 0: return new Fragment1(); case 1: return new Fragment2(); case 2: return new Fragment3(); } return null; } @Override public int getCount() { return title.length; } @Nullable @Override public CharSequence getPageTitle(int position) { return title[position]; } }