欢迎来到天天文库
浏览记录
ID:39464506
大小:61.50 KB
页数:8页
时间:2019-07-03
《Android RecyclerView模仿探探左右滑动布局》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Android-->RecyclerView模仿探探左右滑动布局1:这种功能,首先需要自己管理布局继承RecyclerView.LayoutManager,显示自己管理布局,比如最多显示4个view,并且都是居中显示.底部的View还需要进行缩放,平移操作.publicclassOverLayCardLayoutManagerextendsRecyclerView.LayoutManager{privatestaticfinalStringTAG="swipecard";publicstaticintMAX_SHOW_COUNT=4;publicstaticfloatSCALE_
2、GAP=0.05f;publicstaticintTRANS_Y_GAP;publicOverLayCardLayoutManager(Contextcontext){//平移时,需要用到的参考值TRANS_Y_GAP=(int)(20*context.getResources().getDisplayMetrics().density);}@OverridepublicRecyclerView.LayoutParamsgenerateDefaultLayoutParams(){//必须要实现的方法returnnewRecyclerView.LayoutParams(ViewGr
3、oup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);}@OverridepublicvoidonLayoutChildren(RecyclerView.Recyclerrecycler,RecyclerView.Statestate){//在这个方法中进行View的布局操作.此方法会被调用多次.detachAndScrapAttachedViews(recycler);intitemCount=getItemCount();if(itemCount<1){return;}//top-3View的po
4、sitionintbottomPosition;//边界处理if(itemCount5、定义ViewGroup一样,需要先addViewaddView(view);//3:和自定义ViewGroup一样,也需要测量View的大小measureChildWithMargins(view,0,0);intwidthSpace=getWidth()-getDecoratedMeasuredWidth(view);intheightSpace=getHeight()-getDecoratedMeasuredHeight(view);//4:和自定义ViewGroup的onLayout一样,需要layoutView.对View进行布局//我们在布局时,将childView居中6、处理,这里也可以改为只水平居中layoutDecoratedWithMargins(view,widthSpace/2,heightSpace/2,widthSpace/2+getDecoratedMeasuredWidth(view),heightSpace/2+getDecoratedMeasuredHeight(view));/***TopView的Scale为1,translationY0*每一级Scale相差0.05f,translationY相差7dp左右**观察人人影视的UI,拖动时,topView被拖动,Scale不变,一直为1.*top-1View的Scale慢7、慢变化至1,translation也慢慢恢复0*top-2View的Scale慢慢变化至top-1View的Scale,translation也慢慢变化只top-1View的translation*top-3View的Scale要变化,translation岿然不动*///第几层,举例子,count=7,最后一个TopView(6)是第0层,intlevel=itemCount-position-1;//如果不需要缩放平移,那么下面的代码可以注释掉...//除了顶层不需要缩小和位
5、定义ViewGroup一样,需要先addViewaddView(view);//3:和自定义ViewGroup一样,也需要测量View的大小measureChildWithMargins(view,0,0);intwidthSpace=getWidth()-getDecoratedMeasuredWidth(view);intheightSpace=getHeight()-getDecoratedMeasuredHeight(view);//4:和自定义ViewGroup的onLayout一样,需要layoutView.对View进行布局//我们在布局时,将childView居中
6、处理,这里也可以改为只水平居中layoutDecoratedWithMargins(view,widthSpace/2,heightSpace/2,widthSpace/2+getDecoratedMeasuredWidth(view),heightSpace/2+getDecoratedMeasuredHeight(view));/***TopView的Scale为1,translationY0*每一级Scale相差0.05f,translationY相差7dp左右**观察人人影视的UI,拖动时,topView被拖动,Scale不变,一直为1.*top-1View的Scale慢
7、慢变化至1,translation也慢慢恢复0*top-2View的Scale慢慢变化至top-1View的Scale,translation也慢慢变化只top-1View的translation*top-3View的Scale要变化,translation岿然不动*///第几层,举例子,count=7,最后一个TopView(6)是第0层,intlevel=itemCount-position-1;//如果不需要缩放平移,那么下面的代码可以注释掉...//除了顶层不需要缩小和位
此文档下载收益归作者所有