Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ViewPager页面片段之间的填充/边距_Android_Android Fragments_Android Viewpager - Fatal编程技术网

Android ViewPager页面片段之间的填充/边距

Android ViewPager页面片段之间的填充/边距,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,Android Market/Google Music似乎能够在ViewPager中包含的不同片段之间存在某种差距 你知道怎么做吗?向实际片段视图添加边距/填充不起作用,因为视图仍需要占据整个屏幕宽度。“间隙”仅在滑动ViewPager时可见。中,您可以使用以下方法: setPageMargin(int marginPixels) setPageMarginDrawable(Drawable) setPageMarginDrawable(int) 在课堂上 我不知道为什么这在XML中没有等价物

Android Market/Google Music似乎能够在
ViewPager
中包含的不同片段之间存在某种差距

你知道怎么做吗?向实际片段视图添加边距/填充不起作用,因为视图仍需要占据整个屏幕宽度。“间隙”仅在滑动ViewPager时可见。

中,您可以使用以下方法:

setPageMargin(int marginPixels)
setPageMarginDrawable(Drawable)
setPageMarginDrawable(int)
在课堂上

我不知道为什么这在XML中没有等价物:-(

如果需要使用dip装置,可以使用以下方法:

public static int convertDip2Pixels(Context context, int dip) {
    return (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dip, context.getResources().getDisplayMetrics());
}

希望这能帮助那些拥有浏览页面和页面边距的人

我想要一个ViewPager是一个CardView,并且在ViewPager页面之间的填充和边距方面存在问题。setPageMargin对我根本不起作用。我必须使用以下方法:

int pagerPadding = 16;
pager.setClipToPadding(false);
pager.setPadding(pagerPadding, 0, pagerPadding, 0);
这样可以使页面非常靠近

pager.setcliptoppadding(false); pager.setPadding(左、0、右、0); 如果您需要在viewpager中的两个页面之间留出空间,请添加 setPageMargin(int);

试试这个

    ViewPager viewPager = (ViewPager) findViewById(R.id.h_view_pager);
    viewPager.setClipToPadding(false);
    viewPager.setPadding(60, 0, 60, 0);
    viewPager.setPageMargin(20);
    ImagePagerAdapter adapter = new ImagePagerAdapter();
    viewPager.setOffscreenPageLimit(adapter.getCount());
    viewPager.setAdapter(adapter);
试试这个

    viewPager.setClipToPadding(false);
    viewPager.setOffscreenPageLimit(2);
    viewPager.setPadding(20, 0, 20, 0);

以下是一个示例解决方案:

在活动或使用
ViewPager的片段中实现
ViewPager.OnPageChangeListener

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        int tabStripChildCount = mTabStrip.getChildCount();

        for (int i=0 ; i < tabStripChildCount ; i++){
            View view = mTabStrip.getChildAt(i);

            ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
            p.setMargins(0, 0, 50, 0);
            view.requestLayout();
        }
    }

最后,您的标题片段之间将有一个边距

对于dp到px的转换,我更喜欢更干净的Context.getResources().getDimensionPixelOffset(int-dimenId)方法。执行Context.getResources()时找不到资源。getDimensionPixelOffset(int-dimenId).维度的ID是正确的,但它不能使用适配器引用而不是上下文
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        int tabStripChildCount = mTabStrip.getChildCount();

        for (int i=0 ; i < tabStripChildCount ; i++){
            View view = mTabStrip.getChildAt(i);

            ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
            p.setMargins(0, 0, 50, 0);
            view.requestLayout();
        }
    }
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    mSectionsPagerAdapter = new SectionsPagerAdapter(getChildFragmentManager());
    View view =  inflater.inflate(R.layout.patient_activity__fragment_tab_viewer, container, false);

    mViewPager = (ViewPager) view.findViewById(R.id.viewPager); 
    mViewPager.setAdapter(mSectionsPagerAdapter);

    mTabStrip = (SlidingTabLayout) view.findViewById(R.id.tabs);

    mTabStrip.setViewPager(mViewPager);
    return view;
}