我不确定我是否正确地接近了这个问题,并希望从友好的SO社区获得一些建议。基本上,我希望得到一个效果,如从屏幕左侧出来的滑动菜单,但我希望菜单和主屏幕共享相同的背景。因此,当菜单出来时,它只是将主要内容推向右侧,但它们共享相同的背景。
我尝试过使用ViewPager,将菜单放在位置0,将主要内容放在位置1.看起来不错,除了我不知道如何阻止ViewPager重新回到它的状态原始位置或完全进入下一页。我希望大约停止一半。我尝试重写ViewPager的onTouch()方法,我可以识别视图被拖到中途的时间,但我不知道如何将其锁定到位。
有什么想法吗?
答案 0 :(得分:5)
经过一番挖掘后,我想出了一种方法。对于您的寻呼机适配器,请扩展其中一个。就我而言,我扩展了FragmentStatePagerAdapter。然后,覆盖它的getPageWidth()方法并显式设置每个页面的宽度。
/**
* This method should return a percentage of the measured screen width, booya
*
* @param position
* @return
*/
@Override
public float getPageWidth(int position)
{
switch (position)
{
case 0:
return .33f;
case 1:
return 1;
case 2:
return .8f;
default:
return 1;
}
}
所以在这个例子中,有3页。左边的页面是屏幕的1/3,中间的页面是全屏,右边的页面是屏幕的4/5。这会产生滑动菜单的效果,但具有共享背景。