我正在开发一个应用程序,其中有一个回收视图与一些卡,并希望创建一个放大效果时,用户触摸卡和缩小时,释放触摸。前一张和下一张卡应尊重的大小,因为它扩大,而不是后面或前面
我想创建一些类似于this layout manager的东西,但通过触摸屏幕而不是滚动。
//RecyclerView
recyclerView = view.findViewById(R.id.recyclerView)
recyclerView.setHasFixedSize(false)
recyclerView.layoutManager = CenterZoomLayoutManager(activity, LinearLayoutManager.VERTICAL, false)
如何创造这种效果呢?先谢了。
3条答案
按热度按时间dzjeubhm1#
使用
stateListAnimator
可以实现类似的效果。在本例中,我将stateListAnimator
附加到recyclerView项目。按下项目时,比例为1,未按下时,比例为0.8recyclerview_item.xml
res/animator/list_animator.xml
jslywgbw2#
请在onBindViewHolder中使用以下代码实现项目缩放
vyswwuz23#
如果你想在按住recylerview项的同时放大和缩小,上面@ashakirov的答案可以很好地工作,对于那些希望点击一个项时有这个缩放动画的人来说,可以做这些修改来实现这一点。
recyclerview_item.xml
res/animator/list_animator.xml**(已将安卓系统:按下状态更改为安卓系统:选定状态)**
现在为选定位置维护一个变量,将其更新为单击项视图的位置并调用notifyDataSetChanged(),因为它将触发OnBindViewHolder,我们将在其中更改项视图的选定状态。