🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
App的主页面布局,常见方式为**TabLayout**+**ViewPager**+**Fragment**组合。 ![](https://box.kancloud.cn/e728d91c2e46e02a9a8a528dd9750a99_602x1006.png ) ### 一、 TabLayout 1、 TabLayout属于design类库,需要在build.gradle文件引入类库: ~~~ dependencies { implementation 'com.android.support:design:26.1.0' } ~~~ 2、 xml布局文件 ~~~ <android.support.design.widget.TabLayout android:id="@+id/tabbar" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.design.widget.TabLayout> ~~~ 3、通过以下属性设置Tab项的字体颜色及底部指示器样式 ~~~ ///tab字体及选中字体样式 app:tabTextColor="@color/your_unselected_text_color" app:tabSelectedTextColor="@color/your_selected_text_color" ///指示器样式 app:tabIndicatorColor="@android:color/white" ~~~ 4、设置TabLayout的选中事件 ~~~ tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); ~~~ ### 二、ViewPager: > * ViewPager是android-support-v4.jar包中的一个系统控件 > * ViewPager继承自ViewGroup > * ViewPager专门用以实现左右滑动切换View的效果 引入类库: ~~~ dependencies { implementation 'com.android.support:support-v4:26.1.0' } ~~~ **ViewPager常用方法** 1. setAdapter(PagerAdapter adapter) 建立与适配器的联系 2. FragmentPagerAdapter:PagerAdapter类 PagerAdapter类是与ViewPager配合使用的适配器类 ViewPager将调用PagerAdapter来取得所需显示的页,而PagerAdapter也会在数据变化时,通知ViewPager。 ~~~ @Override public Fragment getItem(int position) { return fragment; } @Override public int getCount() { return xxx; } @Override public CharSequence getPageTitle(int position) { return title; } ~~~ ### 三、TabLayout与ViewPager绑定 当TabLayout与ViewPager绑定后,切换底部tab或左右滑动pager,确保一致性。 ~~~ tabLayout.setupWithViewPager(viewPager); ~~~