我目前正在使用水平为RecyclerView
的{{1}}。 LinearLayout
占据了所有屏幕:
我找到了像这样对RecyclerView
进行修复转换的方法:
请注意,转型就像一个"沉没"或者"垮台"做一个" deep"影响。由于项目'大小可以改变,我需要一个永久的转变,这就是为什么我想在RecyclerView
反正有吗?也许是在RecyclerView
??
非常感谢你。
问候。
圣拉斐尔。
添加:
我想注意PageTransformer
做了类似的事情。事实上,我想要的东西与三星Galaxy S3在使用其中一个启动器(使用onDraw
)滚动时所做的非常相似,但我想修改该转换:
我在尝试什么?
我试图滚动ViewPager
的大型水平适配器,但我想"折叠"一点点的观点,给人以'#34;缸"。
答案 0 :(得分:1)
创建一个扩展RecyclerView
并覆盖其dispatchDraw
(或draw
)方法的类,使用Matrix#setPolyToPoly
进行透视转换,下面的代码会像&# 34;星球大战"效果,您需要拨打setPolyToPoly
两次并在自定义视图的两半上应用Matrix
:
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
final float DELTAX = w * 0.15f;
float[] src = {
0, 0, w, 0, w, h, 0, h
};
float[] dst = {
0, 0, w, 0, w - DELTAX, h, DELTAX, h
};
matrix.setPolyToPoly(src, 0, dst, 0, 4);
}
@Override
protected void dispatchDraw(Canvas canvas) {
canvas.save();
canvas.concat(matrix);
super.dispatchDraw(canvas);
canvas.restore();
}