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

来源:互联网 发布:氮素网络是什么意思 编辑:程序博客网 时间:2024/04/30 12:14

效果图
效果图

我们先看布局文件
首先是一个顶部布局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 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。

源代码不贴了,怕被大牛看了笑话….想要的私下找我吧

0 0
原创粉丝点击