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

目录
  • 一.目的
  • 二.具体代码和页面介绍
  • 三.仓库代码

一.目的

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

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

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

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

二.具体代码和页面介绍

1.编辑详情页面

即点击后的界面的样式,代码以及样式图如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://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页面点击跳转的资料请关注我们其它相关文章!

(0)

相关推荐

  • Android recycleView的应用和点击事件实例详解

    Android recycleView的应用和点击事件 效果图: 长按是删除: 下面代码: MainActivity 类 public class MainActivity extends AppCompatActivity { RecyclerView rv; List<String> mList = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.on

  • 去掉RecycleView或者ListView上下滑动阴影的方法

    只需要设置两个属性即可: android:overScrollMode="never" android:scrollbars="none" 另外简单介绍一下: 设置滑动到顶部和底部的背景或颜色: android:overScrollFooter="@android:color/transparent" android:overScrollHeader="@android:color/transparent" 设置滑动到边缘时无

  • Recycleview实现无限自动轮播

    概述 RecycleView实现特定数据无限重复滑动在我看来不外乎有两种方法 1.修改adpter的复用机制,无限复用数据 2.在adpter中返回数据长度返回Integer的最大值 由于第一种虽然能实现数据的无限重复但是数据位还是没有任何变化,所以在自动跳转至最后的时候无法在向下一位轮播,所以在这里我使用第二种方式实现自动轮播 简单讲述修改adpter的复用机制 我们拿LinearLayoutManager线性的为例子,我们只需要重新LinearLayoutManager在绘制的时候做一些手手

  • Android实现Recycleview悬浮粘性头部外加右侧字母导航

    公司项目要实现这个效果:Android实现Recycleview悬浮粘性头部外加右侧字母导航 图一是开始的画面,图二是滑动的画面,点击右侧字母需要滑动左侧到指定位置,然后左侧的顶部字母A,B等需要悬浮. 实现思路: 右侧的联动可以用recycyeview中adapter的scrollToPositionWithOffset方法实现.左侧就是recycleview,后台返回的城市数据是这种类型的: 复制代码 代码如下: {"returnCode":1,"returnMsg&qu

  • 在RecyclerView中实现button的跳转功能

    目录 一>实现功能 二>在xml中添加布局文件 三>完善java文件 四>完善adapter文件 五>完善JAVA文件 一>实现功能 在实验二中我们已经实现了在类微信界面添加recyclview并添加相应的imageview,本次实验就是在recyclview中添加一个button控件并实现监听,使鼠标点击时可以跳转到另外一个设计好的界面,具体操作如下. 二>在xml中添加布局文件 首先我们要设计点击后的跳转界面,我直接采用了淘宝中的购物界面添加了一个textvi

  • Android 中RecycleView实现item的点击事件

    Android 中RecycleView实现item的点击事件 RecycleView现在已经越来越受到大家的重视,因为他既可以代替listView还可以代替GridView,但是RecycleView本身不不像ListView那样具有setOnItemClickListener,这个关于子item的点击,但是我们往往会用到RecycleView并且希望他的自孩子可以被点击,那么如何实现他的item的点击事件呢? 首先我们在RecyclerView.ViewHolder中的实现: public

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

    目录 一.目的 二.具体代码和页面介绍 三.仓库代码 一.目的 回顾前两次的过程和效果以及本次任务以及最终效果视图: (1)第一次实现界面设计和界面跳转,示例如下: (2)第二次是在页面中设计出自己喜欢的布局并加以实现,我实现的是瀑布流式的布局,如下: (3)第三次就是这次的任务:Activity页面跳转(实现recycleView的页面进行点击跳转),效果如下: 二.具体代码和页面介绍 1.编辑详情页面 即点击后的界面的样式,代码以及样式图如下: <?xml version="1.0&q

  • Android TV开发:使用RecycleView实现横向的Listview并响应点击事件的代码

    本文讲述了Android TV开发:使用RecycleView实现横向的Listview并响应点击事件的代码.分享给大家供大家参考,具体如下: 1.先贴出自己的效果图(可横向滚动,并响应item点击事件): 2.关于点击事件的实现细节 核心:使用接口回调 在adapter中自己定义了个接口,然后在onBindViewHolder中去为holder.itemView去设置相应的监听最后回调我们设置的监听. class HomeAdapter extends RecyclerView.Adapter

  • Android开发返回键明暗点击效果的实例代码

    1:在很多APP里点击返回键,都可以看到返回键由亮变为暗 2:实现方法也是很简单的 (1)新建一个页面 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="65dp" android:background="#258a

  • android使用PopupWindow实现页面点击顶部弹出下拉菜单

    实现此功能没有太多的技术难点,主要通过PopupWindow方法,同时更进一步加深了PopupWindow的使用,实现点击弹出一个自定义的view,view里面可以自由设计,比较常用的可以放一个listview. demo中我只是一个点击展示,简单的使用了fade in out的动画效果,也没有精美的图片资源,看着也丑,不过这么短的时间,让你掌握一个很好用的技术,可以自己扩展,不很好么? 废话不说了,直接上代码: MainActivity.java public class MainActivi

  • Android开发实现的图片点击切换功能示例

    本文实例讲述了Android开发实现的图片点击切换功能.分享给大家供大家参考,具体如下: java 代码 public class MainActivity extends AppCompatActivity { //定义一个访问图片的数组 int[] images = new int[]{ R.drawable.java, R.drawable.javaee, R.drawable.swift, R.drawable.ajax, R.drawable.html, }; //用于图片切换 int

  • Android开发使用RecyclerView添加点击事件实例详解

    目录 引言 一.RecyclerView基本使用 1. 添加适配器Adapter 2. 创建列表的每个项的item_layout.xml文件 3. 在activity中使用 二.RecyclerView点击事件详细步骤 1. 在RecyclerView对应的Adapter类里面新建接口 2. 在Adapter类里创建setOnItemClickListener方法 3. 在Adapter类的onBindViewHolder里给每个item设置回调 4. 在RecyclerView对应的Activ

  • Android TV开发:实现3D仿Gallery效果的实例代码

    本文讲述了Android TV开发:实现3D仿Gallery效果的实例代码.分享给大家供大家参考,具体如下: 1.实现效果: 滚动翻页+ 页面点击+页码指示器+焦点控制 2.实现这个效果之前必须要了解 Android高级图片滚动控件实现3D版图片轮播器这篇文章,我是基于他的代码进行修改的,主要为了移植到电视上做了按键事件和焦点控制. 3.具体代码: public class Image3DSwitchView extends LinearLayout { private int currentP

  • Android编程开发中ListView的常见用法分析

    本文实例讲述了Android编程开发中ListView的常见用法.分享给大家供大家参考,具体如下: 一.ListView的使用步骤 ListView的使用通常有以下三个要素: (1)ListView中每个条目的布局; (2)填充进入ListView中的内容; (3)将内容与页面进行整合的Adapter. 因此,使用ListView也通常有以下三个步骤: (1)创建ListView条目的布局文件(或使用Android SDK提供的布局); (2)创建填充进入ListView中的内容,如字符串.图片

  • Android编程中Intent实现页面跳转功能详解

    本文实例讲述了Android编程中Intent实现页面跳转功能.分享给大家供大家参考,具体如下: 安卓四大组件:Activity.Service.Broadcast Receiver.Content Provider Intent实现页面之间跳转 1.无返回值 startActivity(intent) 2.有返回值 startActivityForResult(intent,requestCode); onActivityResult(int requestCode,int resultCod

  • Android Studio开发环境搭建教程详解

    对于移动端这块,笔者之前一直都是进行iOS开发的,也从来没用过Java.但是因为进入了Google Android全国大学生移动互联网创新挑战赛(进入官网)的总决赛(笔者"西部计算机教育提升计划"的项目被直接推荐进入决赛),这个比赛要求一定要提交apk程序,所以我不得不赶紧学习一下Android开发了. 下面就对自己学习的过程做一个记录. 一.安装Android Studio 笔者用的计算机配置如下: Mac下安装Android Studio应该更简单一些,只需要下载一个Android

随机推荐