使用Fragment和Viewpager实现Tab嵌套,仿网易云音乐tab

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zyw644451/article/details/52938688

效果图
效果图

我们先看布局文件
首先是一个顶部布局top 里面有五个图标
其次在main布局中嵌入top布局,并且定义一个viewpager
随后在定义三个子布局(tab01,tab02,tab03),分别对应三个可滑动的绿色图标。定义完三个tab后,在需要扩展的tab中再添加一个viewpager控件。
最后定义每个子布局的子布局,就是图中的个性推荐,歌单那些…

我们再来看java代码部分
首先建立三个Fragment类,f1,f2,f3,在每个Fragment中分别传入tab01,tab02,tab03。

首先在MainActivity中,把imageView,Fragment等控件初始化,创建一个list用来存放Fragment:

List<Fragment> mFragments = new ArrayList<>();
Fragment fragment1 = new Fragment1();
mFragments.add(fragment1);

再创建一个FragmentPageAdapter
注意在这里要 写一个空方法删除super防止Fragment被销毁重复加载:

     @Override
     public void destroyItem(ViewGroup container, int position, Object object) {

     }

如果不这样 就会重复加载Fragment,在滑动时会产生BUG。

最后再为每一个图标添加监听,滑动时改变颜色,点击时改变颜色。同时监听viewpager的滑动。

同理
在Fragment1中,我们首先把linearlayout,textview等控件初始化,和xml视图连接起来。并且建立一个List用来存放Viewpager的页面。

随后将每个子页面的子页面添加到view中,比如:

 View tab011 = mInflater.inflate(R.layout.tab011,null);

然后调用List的add()方法:

 mList.add(tab011);

再为viewpager建立一个pagerAdapter…
最后监听文字颜色变化等。

就是这么简单,so easy。

源代码已经找不到了= =

阅读更多
换一批

没有更多推荐了,返回首页