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

psy*_*tik 56 android android-fragments android-viewpager

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

知道怎么做的吗?向实际片段视图添加边距/填充不起作用,因为视图仍然需要占据屏幕的整个宽度.只有在轻扫ViewPager时才能看到"间隙".

ATo*_*Tom 118

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

setPageMargin(int marginPixels)
setPageMarginDrawable(Drawable)
setPageMarginDrawable(int)
Run Code Online (Sandbox Code Playgroud)

ViewPager类中.

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

如果您需要使用dip单位,您可以使用此方法:

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

  • 对于dp到px的转换,我更喜欢更清晰的Context.getResources().getDimensionPixelOffset(int dimenId)方法. (16认同)

Ray*_*ter 22

希望这可以帮助有ViewPager和页边距的人.

我想让ViewPager是一个CardView,并且在填充和viewpager页面之间的边距方面存在问题.setPageMargin对我来说根本不起作用.我不得不使用以下内容:

int pagerPadding = 16;
pager.setClipToPadding(false);
pager.setPadding(pagerPadding, 0, pagerPadding, 0);
Run Code Online (Sandbox Code Playgroud)

这使得页面非常接近.

viewpager的示例,页面之间的边距较小.


Ani*_*udh 7

  viewPager.setPageMargin(dpToPx(10)); 
  // replace 10 with the value you want for margin in dp. 


 public int dpToPx(int dp) {
    DisplayMetrics displayMetrics = getActivity().getResources().getDisplayMetrics();
    return Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
 }
Run Code Online (Sandbox Code Playgroud)


小智 5

尝试这个 。

    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);
Run Code Online (Sandbox Code Playgroud)