项目里需要这样一个需求,在一个横向列表里,既要显示第一个item,又要露出第二个的一小部分,这样给用户还有更多的体验,而且在滑动上不是RecyclerView那样可以一点点滑动,而是ViewPager的效果,滑下就选中下一个item。
最开始没多想直接用了RecyclerView,没达到产品的要求。又用了ViewPager,不能显示下一个item了。
在布局里试过固定宽度实现这样的效果,但是没用,照样会把当前Item撑满。
最后用了一个属性android:clipChildren 在布局里设置ViewPager这个属性为false,再在父布局里也同样这样设置
<LinearLayout android:id="@+id/has_car_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:clipChildren="false" android:visibility="gone" android:orientation="vertical"> <com.xylife.common.widget.DynamicHeightViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="@dimen/dp_60" android:clipChildren="false"/>
这样就可以实现,至于让第二个item显示多少可以通过layout_marginRight来控制。
至于效果图就不放了,设置好就可以出了。
这个属性之前真的没用过,谷歌给的解释 Defines whether a child is limited to draw inside of its bounds or not. 定义一个子布局是否被限制在其范围内。