android ViewPager可自定义

时间:2012-10-24 13:52:32

标签: android android-viewpager

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

enter image description here

也就是说,在“空闲”状态下,图像“1”以完整尺寸可见,并且图像“2”部分可见(从而向用户提供他可以滚动内容的线索)。滚动后scrool视图不能保持中间状态并且必须完成滚动(就像启用“Paging Enabled”时iOS的Scroll View一样):

enter image description here

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

谷歌搜索后,我遇到了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;
}

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

enter image description here

3 个答案:

答案 0 :(得分:1)

这就是诀窍:

    ViewPager pager = ...;
    pager.setOffscreenPageLimit(2);
    pager.setPageMargin(-200);

答案 1 :(得分:1)

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

histogram(positionCounts, x)

答案 2 :(得分:0)

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