Android ViewPager页面片段之间的填充/边距
Android Market/Google Music似乎能够在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中没有等价物
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;
}