Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ViewPager适配器-强制每次获取页面宽度_Android_Android Viewpager - Fatal编程技术网

Android ViewPager适配器-强制每次获取页面宽度

Android ViewPager适配器-强制每次获取页面宽度,android,android-viewpager,Android,Android Viewpager,我在ViewPager中有两个片段,我的要求是第一次在第一个片段中显示第二个片段的某些部分,让用户知道还有一个页面。 一旦用户滑动到下一页并返回到第一页,第一个片段应该占据整个屏幕(而不仅仅是90%)。所以我保留了一个标志来检查这是否是第一次,并返回正确的页面宽度- public float getPageWidth(int position) { if (position == 0 && isPatiallyShowNextItem) { return

我在ViewPager中有两个片段,我的要求是第一次在第一个片段中显示第二个片段的某些部分,让用户知道还有一个页面。 一旦用户滑动到下一页并返回到第一页,第一个片段应该占据整个屏幕(而不仅仅是90%)。所以我保留了一个标志来检查这是否是第一次,并返回正确的页面宽度-

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:当此条件被证明时,请执行某些操作

}如果有任何帮助,我们将不胜感激!