我正在使用ViewPager在我的应用程序中实现滑动效果。
我用pager.setPageMargin()使下一个和上一个视图可见,不幸的是我的下一个视图与当前视图重叠。
下面是我的代码
pager = (ViewPager) findViewById(R.id.myviewpager);
adapter = new MyPagerAdapter(this, this.getSupportFragmentManager());
pager.setAdapter(adapter);
pager.setOnPageChangeListener(adapter);
// Set current item to the middle page so we can fling to both
// directions left and right
pager.setCurrentItem(FIRST_PAGE);
// Necessary or the pager will only have one extra page to show
// make this at least however many pages you can see
pager.setOffscreenPageLimit(10);
// Set margin for pages as a negative number, so a part of next and
// previous pages will be showed
//
pager.setPageMargin(-450);
我正在使用分页器中的片段。我得到的输出作为这个线程的附件,但需要视图被正确放置与出重叠
上图中标记的部分应位于中间卡片的后面。
6条答案
按热度按时间inb24sb21#
因为您正在设置寻呼机。setPageMargin(-450);您还需要为ViewPage的子片段和页面调度器给予240的填充。setClipToPadding(false);以获得平滑动画。
如果有人还在寻找解决方案,我已经定制了ViewPage来实现它而不使用负边距,在这里找到一个示例项目https://github.com/44kksharma/Android-ViewPager-Carousel-UI它应该在大多数情况下工作,但您仍然可以使用
mPager.setPageMargin(margin in pixel);
定义页面边距7hiiyaii2#
试试看:
而不是:
laximzn53#
实际上我把所需的视野带到了前面。
注意:要识别位于视图寻呼机当前显示页面中心的正确布局
1zmg4dgp4#
你只需要使用match_parent来计算视图的高度和宽度,希望对你有用。
e3bfsja25#
我已经找到一个解决方案后KitKat版本。基本上我所做的是增加当前中心视图的标高。(我仍在为前棒棒糖解决方案工作)
下面是我的代码,为您的视图页设置一个OnPageChangeListener,并在OnPageSelected方法中
inb24sb26#
首先,Viewpager项目像堆栈一样堆叠。因此,当它给出边距值时,仅在它们之间添加一个空格。为此,您应该使用transformer并为这些功能设置translationZ值。
通常有3个视图,您必须为每个视图设置位置。
您也可以定义0.75f的最大和最小刻度。对于所有代码:
您应该将它应用于您创建的类
最后;