【问题标题】:How to stop Android ViewPager from scrolling past certain point?如何阻止 Android ViewPager 滚动过去某个点?
【发布时间】:2013-09-16 23:04:26
【问题描述】:

我不确定我是否以正确的方式解决了这个问题,并希望从友好的 SO 社区获得一些建议。基本上,我想获得像从屏幕左侧出来的滑动菜单一样的效果,但我希望菜单和主屏幕共享相同的背景。所以当菜单出来时,它只是将主要内容推到右边,但它们共享相同的背景。

我尝试使用 ViewPager,将菜单放在位置 0,将主要内容放在位置 1。它看起来很好,只是我不知道如何阻止 ViewPager 恢复到原始位置或完全停止转到下一页。我希望它大约在中途停下来。我尝试覆盖 ViewPager 的 onTouch() 方法,并且我可以识别视图何时被拖到一半,但我不知道如何将其锁定到位。

有什么想法吗?

【问题讨论】:

    标签: android android-fragments android-viewpager slidingdrawer slidingmenu


    【解决方案1】:

    经过一番挖掘,我想出了一种方法来做到这一点。对于您的寻呼机适配器,扩展其中之一。就我而言,我扩展了 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。这给出了滑动菜单的效果,但具有共享背景。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多