Android ViewPager – 在左侧和右侧显示页面的预览
我正在使用Android的ViewPager
。 我想要做的是在左侧和右侧显示页面的预览。 我已经看到了在哪里可以使用负面的pageMargin
显示右侧的预览。
setPageMargin(-100);
无论如何,我还可以展示左侧的预览? 其基本上类似于我正在寻找的画廊小部件。
要显示左侧和右侧页面的预览,请设置以下两个值
-
viewpager.setClipToPadding(false);
-
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"
这将是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; } }