Fragment中设置滚动条随页面滑动的方法

113 阅读1分钟
 /**
     * 设置滑动条的宽度为屏幕的1/3(根据Tab的个数而定)
     */
    private void initTabLineWidth() {
        //获取屏幕宽度像素
        DisplayMetrics dpMetrics = new DisplayMetrics();
        getWindow().getWindowManager().getDefaultDisplay().getMetrics(dpMetrics);
        screenWidth = dpMetrics.widthPixels;
        //设置iamgeview宽度为屏幕宽度的1/3
        LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) iv_tab.getLayoutParams();
        singleWidth = screenWidth / 4;
        lp.width = screenWidth / 4;
        iv_tab.setLayoutParams(lp);
    }
  vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            /**
             * position :当前页面,及你点击滑动的页面
             * positionOffset:当前页面偏移的百分比
             * positionOffsetPixels:当前页面偏移的像素位置
             */
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                //起始的marginleft+已经位移的marginleft
                int newLeft = (int) (singleWidth * position + positionOffset * singleWidth);
                LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) iv_tab.getLayoutParams();
                lp.leftMargin = newLeft;
                iv_tab.setLayoutParams(lp);
            }