Android ViewPager适配器-强制每次获取页面宽度
我在ViewPager中有两个片段,我的要求是第一次在第一个片段中显示第二个片段的某些部分,让用户知道还有一个页面。 一旦用户滑动到下一页并返回到第一页,第一个片段应该占据整个屏幕(而不仅仅是90%)。所以我保留了一个标志来检查这是否是第一次,并返回正确的页面宽度-Android ViewPager适配器-强制每次获取页面宽度,android,android-viewpager,Android,Android Viewpager,我在ViewPager中有两个片段,我的要求是第一次在第一个片段中显示第二个片段的某些部分,让用户知道还有一个页面。 一旦用户滑动到下一页并返回到第一页,第一个片段应该占据整个屏幕(而不仅仅是90%)。所以我保留了一个标志来检查这是否是第一次,并返回正确的页面宽度- public float getPageWidth(int position) { if (position == 0 && isPatiallyShowNextItem) { return
public float getPageWidth(int position) {
if (position == 0 && isPatiallyShowNextItem) {
return 0.9f;
}
isPatiallyShowNextItem = false;
return 1f;
}
问题是getPageWidth()只被调用一次,并且第一个片段始终只占据屏幕的90%,当用户滑动到下一个片段时,我如何强制getPageWidth,或者当用户随后移动到第二个页面时,如何让第一个片段占据屏幕的100%。
仅供参考-在更改标志后,我尝试了以下调用,但均无效
pagerAdapter.notifyDataSetChanged();
viewPager.requestLayout();
viewPager.invalidate();
一种简单的方法是使用ViewPager.PageTransformer。这样做可以达到90%的页面显示效果
公共类PageRevealtTransformer实现ViewPager.PageTransformer
{
@凌驾
公共页面(查看页面、浮动位置)
{
int pageWidth=page.getWidth();
如果(位置<-.9)
{
//TODO:当此条件被证明时,请执行某些操作
}如果有任何帮助,我们将不胜感激!