上述就是android开发分享Android移动开发recycleView的页面点击跳转设计实现的全部内容,如果对大家有所用处且需要了解更多关于Android学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
一.目的
回顾前两次的过程和效果以及本次任务以及最终效果视图:
(1)第一次实现界面设计和界面跳转,示例如下:
(2)第二次是在页面中设计出自己喜欢的布局并加以实现,我实现的是瀑布流式的布局,如下:
(3)第三次就是这次的任务:activity页面跳转(实现recycleview的页面进行点击跳转),效果如下:
二.具体代码和页面介绍
1.编辑详情页面
即点击后的界面的样式,代码以及样式图如下:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:app="https://schemas.android.com/apk/res-auto" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".cardinfoactivity"> <scrollview android:layout_width="match_parent" android:layout_height="match_parent"> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <imageview android:id="@+id/card_info_image" android:layout_width="match_parent" android:layout_height="wrap_content" android:transitionname="card_info_image" tools:srccompat="@tools:sample/avatars" /> <textview android:id="@+id/card_info_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="textview" android:textsize="30sp" /> </linearlayout> </scrollview> </linearlayout>
因为我的整个界面是一些好看的图片,因此我觉得放大图片更好的观赏更为重要,在这里同样运用和之前一样的同比例地放大和缩小图片的方式,可以根据自己的具体内容进行分析。在新的activity中表现出来
//这个activity是用来展示对应card信息的activity public class cardinfoactivity extends appcompatactivity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_card_info); //获取传递来的信息 imageview card_info_image=(imageview) findviewbyid(r.id.card_info_image); textview card_info_title=(textview) findviewbyid(r.id.card_info_title); intent intent=getintent(); bundle bundle=intent.getextras(); card_info_image.setimageresource(bundle.getint("cardimageid")); card_info_title.settext(bundle.getstring("cardtitle")); //修改图片的高度 viewgroup.layoutparams params = card_info_image.getlayoutparams(); //todo 显然,这高度是由这个参数决定的,如果我们知道了宽的大小width,那么我们就能知道实际缩放比 //获取屏幕的宽度 int screenwidth = screenutil.getscreenwidth(this); //log.d("height",string.valueof(screenwidth)); //调整放入图片的大小,保证宽一定是屏幕的一半,高度随着缩放而改变 float scale = (float)bundle.getint("height") / (float)bundle.getint("width"); params.height = (int) (screenwidth * scale)+200; card_info_image.setlayoutparams(params); } }
2.在原fragment页面(首页)添加点击跳转功能(我这就是wechatfragment)
//设置myadapter的item监听 myadapter.setonrecycleritemclicklistener(new onrecycleritemclicklistener() { @override public void onitemclick(int position, list<myadapter.card> cards) { /* 跳转至另一个activity */ intent intent=new intent(getactivity(),cardinfoactivity.class); //传递相应的参数 //我们需要把构成一个图片的信息传递过去 bundle bundle=new bundle(); bundle.putint("cardimageid",cards.get(position).getimageid()); bundle.putstring("cardtitle",cards.get(position).gettitle()); bundle.putint("height",cards.get(position).getheight()); bundle.putint("width",cards.get(position).getwidth()); intent.putextras(bundle); //启用共享组件的activity过渡 //所选择的共享元件,这个元件是当前页面的元件 //获取item的viewholder log.d("myposition-firstpo", arrays.tostring(firststaggeredgridposition)); log.d("myposition-actpo", string.valueof(position)); log.d("myposition-lastpo", arrays.tostring(laststaggeredgridposition)); //因为我使用的是staggeredgridlayoutmanager recyclerview.layoutmanager layoutmanager = recyclerview.getlayoutmanager(); //由于瀑布流是两列,这里是为了获得处在页面的最小值 int realfirstposition=math.min(firststaggeredgridposition[0],firststaggeredgridposition[1]); myadapter.myviewholder viewholder=(myadapter.myviewholder)recyclerview.getchildviewholder(recyclerview.getchildat(position-realfirstposition)); imageview card_info_image= viewholder.inserimage; activityoptions options = activityoptions.makescenetransitionanimation(getactivity(), pair.create(card_info_image, "card_info_image")); startactivity(intent,options.tobundle()); } });
在myadapter中设计监听接口
//自定义监听接口 interface onrecycleritemclicklistener { //recyclerview的点击事件,将信息回调给view void onitemclick(int position, list<myadapter.card> datas); }
三.仓库代码
https://github.com/1224286059/xc_homework1
以上就是android移动开发recycleview的页面点击跳转设计实现的详细内容,更多关于recycleview页面点击跳转的资料请关注<计算机技术网(www.ctvol.com)!!>其它相关文章!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/addevelopment/1098064.html