我需要实现滚动视图,如下所示:
也就是说,在“空闲”状态下,图像“1”以完整尺寸可见,并且图像“2”部分可见(从而向用户提供他可以滚动内容的线索)。滚动后scrool视图不能保持中间状态并且必须完成滚动(就像启用“Paging Enabled”时iOS的Scroll View一样):
我拒绝使用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;
}
但它导致“每页只有一个图像”行为,而不是我想要的(见第一个图)。
答案 0 :(得分:1)
这就是诀窍:
ViewPager pager = ...;
pager.setOffscreenPageLimit(2);
pager.setPageMargin(-200);
答案 1 :(得分:1)
最简单的方法是,在PagerAdapter中,为getPageWidth实现覆盖。返回值是视图占总空间的百分比。
histogram(positionCounts, x)
答案 2 :(得分:0)
使用ViewPager的LayoutParams的widthFactor属性。它应该缩放它,以便您可以看到下一页的一点。