Kir*_*man 48 android android-viewpager
当使用ViewPager?时,是否有可能同时显示两个页面?我不是在寻找边缘效果,而是在寻找两个完整的页面.
提前致谢.
小智 67
请看getPageWidth相应的方法PagerAdapter.覆盖它并返回例如0.8f让所有子页面仅覆盖ViewPager宽度的80%.
更多信息:http: //developer.android.com/reference/android/support/v4/view/PagerAdapter.html#getPageWidth(int)
Pau*_*sma 32
在这里查看我的最新答案:ViewPager每页可以有多个视图吗?
通过为ViewPager指定负边距,我发现了一个更简单的解决方案.我在GitHub上创建了MultiViewPager项目,您可能需要查看:
虽然这个问题特别要求没有边缘效应的解决方案,但是这里的一些答案提出了CommonsWare的解决方法,例如kaw的建议.
使用该特定解决方案存在触摸处理和硬件加速的各种问题.在我看来,更简单,更优雅的解决方案是为ViewPager指定负边距:
ViewPager.setPageMargin(
getResources().getDimensionPixelOffset(R.dimen.viewpager_margin));
Run Code Online (Sandbox Code Playgroud)
然后我在我的中指定了这个维度dimens.xml:
<dimen name="viewpager_margin">-64dp</dimen>
Run Code Online (Sandbox Code Playgroud)
为了弥补重叠页面,每个页面的内容视图具有相反的边距:
android:layout_marginLeft="@dimen/viewpager_margin_fix"
android:layout_marginRight="@dimen/viewpager_margin_fix"
Run Code Online (Sandbox Code Playgroud)
再次在dimens.xml:
<dimen name="viewpager_margin_fix">32dp</dimen>
Run Code Online (Sandbox Code Playgroud)
(请注意,viewpager_margin_fix尺寸是绝对viewpager_margin尺寸的一半.)
我们在荷兰报纸应用程序De Telegraaf Krant中实现了这一点:


fla*_*327 12
您必须覆盖 getPageWidth()viewpager的Adapter上的方法.例如:
@Override
public float getPageWidth(int position) {
return 0.9f;
}
Run Code Online (Sandbox Code Playgroud)
在适配器中尝试该代码,然后您就会明白了.
小智 5
查看该博客条目.
PagerContainer技术解决了我的问题.
编辑:
我找到了相同的答案.
如何从Gallery迁移到HorizontalScrollView和ViewPager?
aim*_*ngo -2
我认为由于视图寻呼机的限制这是不可能的。它只允许用户一次查看第 1 页。您也许可以使用片段来解决一些问题,并排放置 2 个 ViewPager 片段并使用按钮来实现您想要实现的页面翻转,但代码可能会变得非常复杂。
您可以尝试像 ViewFlipper 这样的东西 - 您可以在其中进行更多自定义(包括动画)。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
44153 次 |
| 最近记录: |