2

我需要实现一个滚动视图,如图所示:

在此处输入图像描述

也就是说,在“空闲”状态下,图像“1”以全尺寸可见,而图像“2”部分可见(从而向用户提供他可以滚动内容的线索)。滚动后,scool view 不能停留在中间状态,并且必须完成滚动(就像 iOS 的 Scroll View 在“启用分页”打开时所做的那样):

在此处输入图像描述

我拒绝使用HorizontalScrollView,因为它与“启用分页”属性没有任何相似之处。

谷歌搜索后,我遇到了android.support.v4.view.ViewPager. 它的滚动行为完全是我想要的,但我不知道如何支持“部分可见”的下一张图片ViewPager?从技术上讲,我应该在

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)?

目前,我的代码是

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    View view = inflater.inflate(R.layout.stage_select_image_layout, container, false);
    ImageView imageView = (ImageView) view.findViewById(R.id.stage_select_image_layout_image);
    imageView.setImageResource(m_imageResourceId);
    return view;
}

但它会导致“每页只有一个图像”的行为,而不是我想要的(见第一张图)。

在此处输入图像描述

4

3 回答 3

1

这可以解决问题:

    ViewPager pager = ...;
    pager.setOffscreenPageLimit(2);
    pager.setPageMargin(-200);
于 2012-10-25T10:48:27.273 回答
1

最简单的做法是,在您的 PagerAdapter 中实现 getPageWidth 的覆盖。返回值是视图占总空间的百分比。

@Override
public float getPageWidth(int position) {
    return 0.75f;
}
于 2016-03-15T18:28:38.967 回答
0

使用 ViewPager 的 LayoutParams 的widthFactor属性。它应该缩放它,以便您可以看到一些下一页。

于 2012-10-24T17:14:03.370 回答