TabLayout、ViewPager、fragment实现可滑动的顶部菜单
2017-12-07 19:39
429 查看
首先看下效果
第一步:主布局
第二步:定义四个Fragment,每个Fragment中都有个TextView,举其中一个布局代码:
第三步:自定义一个ViewPagerAdapter继承于FragmentStatePagerAdpater
第四步:定义一个常量类
第五步:主布局中将三者进行绑定
第一步:主布局
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <android.support.v7.widget.Toolbar android:id="@+id/tool_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" android:minHeight="?attr/actionBarSize" android:theme="@style/AppTheme.ToolBar" app:title="@string/app_name"> </android.support.v7.widget.Toolbar> <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="fixed" /> <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent"> </android.support.v4.view.ViewPager> </LinearLayout>
第二步:定义四个Fragment,每个Fragment中都有个TextView,举其中一个布局代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="推荐"/> </LinearLayout>
第三步:自定义一个ViewPagerAdapter继承于FragmentStatePagerAdpater
public class ViewPagerAdapter extends FragmentStatePagerAdapter { private List<FragmentInfo> fragmentInfos; public ViewPagerAdapter(FragmentManager fm) { super(fm); initFragment(); } /** * 初始化fragment */ private void initFragment() { fragmentInfos = new ArrayList<>(); fragmentInfos.add(new FragmentInfo("推荐", RecommendFragment.class)); fragmentInfos.add(new FragmentInfo("排行", RankingFragment.class)); fragmentInfos.add(new FragmentInfo("游戏", GamesFragment.class)); fragmentInfos.add(new FragmentInfo("分类", CategoryFragment.class)); } /** * 获得fragment * @param position * @return */ @Override public Fragment getItem(int position) { try { return (Fragment) fragmentInfos.get(position).getFragment().newInstance(); } catch (Exception e) { e.printStackTrace(); } return null; } @Override public int getCount() { return fragmentInfos.size(); } /** * 获取tableLayout上面的标题 */ @Override public CharSequence getPageTitle(int position) { return fragmentInfos.get(position).getTitle(); } }
第四步:定义一个常量类
public class FragmentInfo { public String title; public Class fragment; public FragmentInfo(String title, Class fragment) { this.title = title; this.fragment = fragment; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Class getFragment() { return fragment; } public void setFragment(Class fragment) { this.fragment = fragment; } }
第五步:主布局中将三者进行绑定
ViewPagerAdapter pagerAdapter = new ViewPagerAdapter(getSupportFragmentManager()); //viewpager设置适配器 viewPager.setAdapter(pagerAdapter); //TableLayout和ViewPager进行绑定 tabLayout.setupWithViewPager(viewPager);
相关文章推荐
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- Android 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
- TabLayout+ViewPager+Fragment简单实现横向滑动菜单
- TabLayout+Fragment+ViewPager顶部菜单可滑动切换
- TabLayout+ViewPager+Fragment实现顶部滑动效果
- 首页-底部&顶部Tab导航(菜单栏)的实现:TabLayout+ViewPager+Fragment
- 手把手教你TabLayout、ViewPager、Fragment实现顶部导航
- ViewPager+Fragment+TabLayout实现的头部滑动
- TabLayout 和ViewPager和Fragment的多页面滑动(主要实现一个水平的布局用来展示Tabs加上ViewPager实现联动效果)
- Android Studio 使用ViewPager + Fragment实现滑动菜单Tab效果 --简易版
- 横向滑动菜单Tablayout,点击选项给下面的viewpager中的fragment传值
- Android进阶之利用Tablayout+ViewPager+Fragment实现神奇的滑动效果
- Android ViewPager和Fragment实现顶部导航界面滑动效果、标签下的tab位置
- 一个案例教你简单地玩转ViewPager(二)之ViewPaper+TabLayout+Fragment顶部标签界面滑动
- TabLayout+ViewPager+Fragment实现分页滑动效果
- 结合TabLayout 、ViewPager 、 Fragment 实现顶部导航栏,最实用!!!