Android开发仿新闻头条上方滑动菜单事件

先来看张效果图,在首页部分,上方分为五个标题,可以滑动展示不同主题的内容。最初的实现是在首页这个frament中加入viewpager但是发现数据不显示。

所以换成了在frament中嵌套frament。

Android开发仿新闻头条上方滑动菜单事件_第1张图片

布局代码很容易,下面是主要逻辑代码:

首先我们获取布局中的viewpager:pager = (ViewPager) parentView.findViewById(R.id.vii);

新建五个frament并绑定相应布局:

                home1 = new TabFrament1();
home2 = new TabFrament2();
home3 = new TabFrament3();


home4 = new TabFrament4();
home5 = new TabFrament5();

               views = new ArrayList();

添加进来:

               views.add(home1);
views.add(home2);
views.add(home3);
views.add(home4);
views.add(home5);

////

FragmentManager fragmentManager = getFragmentManager();
pager.setAdapter(new MyFragmentPagerAdapter(fragmentManager,
views));//绑定自定义的FragmentPagerAdapter
pager.setOnPageChangeListener(new MyOnPageChangeListener());//监听事件
pager.setCurrentItem(0);//设置当前所处的位置

/*****************自定义adapter***************/

public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
    private ArrayList fragmentsList;


    public MyFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
    }


    public MyFragmentPagerAdapter(FragmentManager fm, ArrayList fragments) {
        super(fm);
        this.fragmentsList = fragments;
    }


    @Override
    public int getCount() {
        return fragmentsList.size();
    }


    @Override
    public Fragment getItem(int arg0) {
        return fragmentsList.get(arg0);
    }


    @Override
    public int getItemPosition(Object object) {
        return super.getItemPosition(object);
    }

 

/*******************滑动监听事件****************/

public class MyOnPageChangeListener implements OnPageChangeListener {


@Override
public void onPageSelected(int arg0) {


resetimage();
switch (arg0) {
case 0:


i1.setTextColor(Color.RED);
pager.setCurrentItem(0);



break;
case 1:


i2.setTextColor(Color.RED);
pager.setCurrentItem(1);
break;
case 2:


i3.setTextColor(Color.RED);
pager.setCurrentItem(2);
break;
case 3:


i4.setTextColor(Color.RED);
pager.setCurrentItem(3);
break;
case 4:


i5.setTextColor(Color.RED);
pager.setCurrentItem(4);
break;


}


}


@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}


@Override
public void onPageScrollStateChanged(int arg0) {
}
}

 

欢迎关注技术公众号,微信号搜索ColorfulCode 代码男人

分享技术文章,投稿分享,不限技术种类,不限技术深度,让更多人因为分享而受益。

 

你可能感兴趣的:(Android开发)