viewpager Scrollview fragment 滑动

public class MainActivity extends FragmentActivity {
    //全局变量

    private ImageView my_login_blog;
    private TextView fen_name;
    private UMShareListener umShareListener;
    public static final String ARGUMENTS_NAME = null;
    private ViewPager vp;
    private RadioGroup rg;
    private ImageView img;
    private int indicatorWidth;
    public static String[] tabTitle = { "推荐", "热点", "娱乐", "本地", "国际","科技","体育","美女","健康"  }; // 标题
    private List<Fragment> list;
      private LayoutInflater inflater;

        private SlidingMenu menu;
        private TextView login;
        private UMShareAPI mShareAPI;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        vp = (ViewPager) findViewById(R.id.vp);
        rg = (RadioGroup) findViewById(R.id.rg);
        img = (ImageView) findViewById(R.id.img);
        sc = (HorizontalScrollView) findViewById(R.id.sc);
        list = new ArrayList<Fragment>();
        list.add(new TuiJianFragmen());
        list.add(new RDFragment());
        list.add(new YLFragments());
        list.add(new BDFragments());
        list.add(new KJFragment());
        list.add(new JKFragments());
        list.add(new TYFragments());
        list.add(new SPFragment());
        list.add(new SHFragment());
        
        TabFragmentPagerAdapter mAdapter = new TabFragmentPagerAdapter(
                getSupportFragmentManager());
        vp.setAdapter(mAdapter);
        DisplayMetrics dm = new DisplayMetrics();
        // 将当前窗口的一些信息放在DisplayMetrics类中,
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        // radiobutton的宽度
        indicatorWidth = dm.widthPixels / 8;
        LayoutParams params = img.getLayoutParams();
        params.width = indicatorWidth;

        img.setLayoutParams(params);
        setlisenten();
        MysettingView();
        initView();
         PushAgent.getInstance(MainActivity.this).onAppStart();
    }

    @SuppressWarnings("deprecation")
    private void setlisenten() {
        vp.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                if (rg != null && rg.getChildCount() > position) {
                    ((RadioButton) rg.getChildAt(position)).performClick();
                }
            }

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

            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
        rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            private int currentIndicatorLeft;

            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                case R.id.tuijian:
                    setimg(0);

                    break;
                case R.id.redian:
                    setimg(1);

                    break;
                case R.id.yule:
                    setimg(2);

                    break;
                case R.id.bendi:
                    setimg(3);

                    break;
                case R.id.guoji:
                    setimg(4);

                    break;
                case R.id.jiankag:
                    setimg(5);

                    break;
                case R.id.tiyu:
                    setimg(6);

                    break;
                default:
                    break;
                }
            }

            private void setimg(int checkedId) {
                TranslateAnimation animation = new TranslateAnimation(
                        currentIndicatorLeft, ((RadioButton) rg
                                .getChildAt(checkedId)).getLeft(), 0f, 0f);
                animation.setDuration(100);
                animation.setFillAfter(true);

                // 执行位移动画
                img.startAnimation(animation);

                vp.setCurrentItem(checkedId); // ViewPager 跟随一起 切换

                // 记录当前 下标的距最左侧的 距离
                currentIndicatorLeft = ((RadioButton) rg.getChildAt(checkedId))
                        .getLeft();
                 sc.smoothScrollTo(
                         (checkedId > 1 ? ((RadioButton) rg.getChildAt(checkedId)).getLeft() : 0) - ((RadioButton) rg.getChildAt(2)).getLeft(), 0);
            }

        });
    }
    private void initView() {
        //DisplayMetrics 类提供了一种关于显示的通用信息,如显示大小,分辨率和字体
        DisplayMetrics dm = new DisplayMetrics();
        //将当前窗口的一些信息放在DisplayMetrics类中,
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        //radiobutton的宽度
        indicatorWidth = dm.widthPixels / 9;
        LayoutParams params = img.getLayoutParams();
        params.width=indicatorWidth;
        
        img.setLayoutParams(params);
        //获取布局填充器
        inflater = LayoutInflater.from(this);
        
        TabFragmentPagerAdapter mAdapter = new TabFragmentPagerAdapter(getSupportFragmentManager());
        vp.setAdapter(mAdapter);
    }
    
    class TabFragmentPagerAdapter extends FragmentPagerAdapter {


        public TabFragmentPagerAdapter(FragmentManager fm) {

            super(fm);
            // TODO Auto-generated constructor stub
        }

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

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return list.size();
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值