Android ViewPager – 在左侧和右侧显示页面的预览

我正在使用Android的ViewPager 。 我想要做的是在左侧和右侧显示页面的预览。 我已经看到了在哪里可以使用负面的pageMargin显示右侧的预览。

 setPageMargin(-100); 

无论如何,我还可以展示左侧的预览? 其基本上类似于我正在寻找的画廊小部件。

Solutions Collecting From Web of "Android ViewPager – 在左侧和右侧显示页面的预览"

要显示左侧和右侧页面的预览,请设置以下两个值

  1. viewpager.setClipToPadding(false);
  2. viewpager.setPadding(left,0,right,0);

如果在viewpager中的两个页面之间需要空格,请添加

 viewpager.setPageMargin(int); 

@JijuInduchoodan的答案是完美的,工作。 不过,由于我对Android比较陌生,所以花了我一些时间才能正确理解和设置。 所以,我发布这个答案供将来参考,并帮助任何与我鞋子相同的人。

 if (viewPager == null) { // Initializing view pager viewPager = (ViewPager) findViewById(R.id.vpLookBook); // Disable clip to padding viewPager.setClipToPadding(false); // set padding manually, the more you set the padding the more you see of prev & next page viewPager.setPadding(40, 0, 40, 0); // sets a margin b/w individual pages to ensure that there is a gap b/w them viewPager.setPageMargin(20); } 

无需为适配器中的ViewPager's页面设置任何宽度。 没有额外的代码需要在ViewPager查看上一页和下一页。 但是,如果要在每个页面的顶部和底部添加空白空间,可以将以下代码设置为ViewPager's子页面的父级布局。

 android:paddingTop="20dp" android:paddingBottom="20dp" 

Final ViewPager

这将是ViewPager的最终外观。

在2017年,通过使用PageRSnapHelper的 RecyclerView (在V7支持库的版本25.1.0中添加),可以轻松实现此类行为:

在这里输入图像说明

前段时间我需要这样一个类似viewpager的function,并准备了一个小图书馆:

MetalRecyclerPagerView – 你可以在那里find所有的代码和例子。

主要由一个类文件组成: MetalRecyclerViewPager.java (和两个xmls: attrs.xml和ids.xml )。

希望它有助于某人,并会节省几个小时:)

使用这个片段适配器和类来查看左侧和右侧的viewpager scroll.add必要的类来滚动查看下一页。

 package com.rmn.viewpager; import java.util.List; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; /** * The <code>PagerAdapter</code> serves the fragments when paging. * @author mwho */ public class PagerAdapter extends FragmentPagerAdapter { private List<Fragment> fragments; /** * @param fm * @param fragments */ public PagerAdapter(FragmentManager fm, List<Fragment> fragments) { super(fm); this.fragments = fragments; } /* (non-Javadoc) * @see android.support.v4.app.FragmentPagerAdapter#getItem(int) */ @Override public Fragment getItem(int position) { return this.fragments.get(position); } /* (non-Javadoc) * @see android.support.v4.view.PagerAdapter#getCount() */ @Override public int getCount() { return this.fragments.size(); } } package com.manishkpr.viewpager; import android.content.Context; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; public class ViewPagerAdapter extends FragmentPagerAdapter { private Context _context; public ViewPagerAdapter(Context context, FragmentManager fm) { super(fm); _context=context; } @Override public Fragment getItem(int position) { Fragment f = new Fragment(); switch(position){ case 0: f=LayoutOne.newInstance(_context); break; case 1: f=LayoutTwo.newInstance(_context); break; } return f; } @Override public int getCount() { return 2; } }