android开发分享Android移动开发recycleView的页面点击跳转设计实现

一.目的回顾前两次的过程和效果以及本次任务以及最终效果视图:(1)第一次实现界面设计和界面跳转,示例如下:(2)第二次是在页面中设计出自己喜欢的布局并加以实现,我实现的是瀑布流式的布局,如下:(3)第

上述就是android开发分享Android移动开发recycleView的页面点击跳转设计实现的全部内容,如果对大家有所用处且需要了解更多关于Android学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

一.目的

回顾前两次的过程和效果以及本次任务以及最终效果视图:

(1)第一次实现界面设计和界面跳转,示例如下:

Android移动开发recycleView的页面点击跳转设计实现

(2)第二次是在页面中设计出自己喜欢的布局并加以实现,我实现的是瀑布流式的布局,如下:

Android移动开发recycleView的页面点击跳转设计实现

(3)第三次就是这次的任务:activity页面跳转(实现recycleview的页面进行点击跳转),效果如下:

Android移动开发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>

Android移动开发recycleView的页面点击跳转设计实现

因为我的整个界面是一些好看的图片,因此我觉得放大图片更好的观赏更为重要,在这里同样运用和之前一样的同比例地放大和缩小图片的方式,可以根据自己的具体内容进行分析。在新的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

(0)
上一篇 2022年5月27日
下一篇 2022年5月27日

精彩推荐