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

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

 setPageMargin(-100); 

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

  • 如何知道ViewPager已经在android中滚动了一半的屏幕
  • 将多个图像添加到ViewPager
  • IllegalArgumentException:半径必须> 0
  • android viewpager更改适配器
  • 在ViewPager android的中心alignment子视图
  • 查看传呼机+图像查看+捏放大+旋转
  • 如何使用页面滑动视图创buildAndroid选项卡样式
  • CoordinatorLayout状态栏填充从ViewPager第2页消失
  • 要显示左侧和右侧页面的预览,请设置以下两个值

    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; } }