如何迁移从图库Horizo​​ntalScrollView&ViewPager?(How to mi

2019-06-18 00:13发布

我需要在Android 2.2及更高图标选择简单的控制。
画廊对我来说是更好的解决方案,但它已被废弃,我不得不使用HorizontalScrollViewViewPager代替。
但是,如何迁移容易吗? 如何使用本类和控件在这种情况下? 我试图找到这个问题的完整的例子,但我不能找到它。

Answer 1:

这从戴维·史密斯要点显示方式使用ViewPager有视觉效果非常类似于Gallery

引用我的博客文章的话题显示在一个时间多页的ViewPager

他的容器( com.example.pagercontainer.PagerContainer )包裹ViewPager并调用setClipChildren(false); 在本身,所以即使ViewPager的重点是一个选择的页面上,有超越的坐标其他页面ViewPager界仍清晰可见,只要他们符合内PagerContainer 。 通过施胶ViewPager比小PagerContainer ,该ViewPager可以大小可以看出它的新页面,大小,留有余地其他页面。 PagerContainer ,不过,需要帮助了一点触摸事件, ViewPager将只处理自身的可视范围刷卡事件,忽略向两侧可见的任何页面。

您可能还希望通过对筛选这个Android的开发者线程 ,当有人指出一个问题,这个较新的Android版本。 你需要禁用硬件加速是由于错误ViewPager



Answer 2:

有触摸操作和硬件加速CommonsWare的连接解决方​​法的各种问题。 更简单,更优雅的解决方案,在我看来,是到指定ViewPager阴性切缘:

ViewPager.setPageMargin(
    getResources().getDimensionPixelOffset(R.dimen.viewpager_margin));

那么我指定我的这个维度dimens.xml

<dimen name="viewpager_margin">-64dp</dimen>

为了弥补重叠页面,每个页面的内容观点有相反的保证金:

android:layout_marginLeft="@dimen/viewpager_margin_fix"
android:layout_marginRight="@dimen/viewpager_margin_fix"

同样是在dimens.xml

<dimen name="viewpager_margin_fix">32dp</dimen>

(请注意, viewpager_margin_fix尺寸一半的绝对viewpager_margin尺寸。)

我们实现了这个在荷兰报纸应用电讯报Krant



文章来源: How to migrate from Gallery to HorizontalScrollView & ViewPager?