`
百合不是茶
  • 浏览: 355906 次
社区版块
存档分类
最新评论

RecyClerView和CardView的使用

阅读更多

RecyClerView和CardView已经出来很久了,只是一直没有时间去研究,最近公司做的项目个人感觉ui实在太丑...屋里吐槽



 

 

代码实现,RecyClerView替代ListView   CardView可以看成是一个布局 

    记得一定要导入相关的包,否则无法运行

 

 

主布局文件

<android.support.v7.widget.RecyclerView
     xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/recyclerView"
        android:scrollbars="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        />

 

list的布局文件  一定要加上 xmlns:card_view="http://schemas.android.com/apk/res-auto"  否则card_view的属性无法添加

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    card_view:cardBackgroundColor="@color/material_blue_grey_800"
    card_view:cardCornerRadius="5dp"
    card_view:cardPreventCornerOverlap="true"

    >

    <RelativeLayout
        android:layout_marginTop="10dp"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:background="#f7f7f7"
        android:id="@+id/recyclerView_list_id">


        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/imageView"
            android:src="@drawable/sc_action_left"
            android:layout_centerVertical="true"
             />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="中间的文字"
            android:id="@+id/textView"
            android:layout_above="@+id/textView2"
            android:layout_toLeftOf="@+id/textView2"
            android:layout_toStartOf="@+id/textView2"
            android:layout_marginRight="57dp"
             />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="后面的文字"
            android:id="@+id/textView2"
            android:layout_alignBottom="@+id/imageView"
            android:layout_alignParentRight="true"

             />
    </RelativeLayout>

</android.support.v7.widget.CardView>

 

 

Activity的代码

package com.example.administrator.degsin;

import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

/**
 * RecyclerView的使用,话说这个类可以替代ListView,还可以实现下拉刷新,感觉很强大有没有
 */
public class MainActivity extends Activity {

    private RecyclerView recyclerView;
    private LinearLayoutManager linearLayoutManager;
    private RecyclerViewAdapter adapter;
    private List<User> mlist = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //1,创建对象
        recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
        //将RecyclerView设置成横向(竖向也可以)
        //2,创建布局管理器
        linearLayoutManager = new LinearLayoutManager(MainActivity.this);
        //3,设置布局管理器的组件方向
        // linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);//水平方向
        linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);//垂直方向
        //4,设置RecyclerView的布局管理
        recyclerView.setLayoutManager(linearLayoutManager);

        //设置原始数据
        if (mlist == null) {
            mlist = new ArrayList<User>();
            for (int i = 0; i < 20; i++) {
                User u = new User();
                u.setT_date("" + SystemClock.elapsedRealtime());
                u.setT_user("百合不是茶");
                mlist.add(u);
            }
        }

        //5,设置数据源,使用RecyclerView的Adapter
        adapter = new RecyclerViewAdapter();
        //设置数据源
        recyclerView.setAdapter(adapter);
    }

    /**
     * RecyclerView的适配器类
     * 快速导入相关的包快捷键 ctrl+o
     * 格式化形式优化代码 ctrl+alt+l
     */
    class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {

        //创建ViewHolder继承RecyclerView.ViewHolder类
        public class ViewHolder extends RecyclerView.ViewHolder {
            private ImageView imageView;
            private TextView t1;
            private TextView t2;

            public ViewHolder(View view_list) {
                super(view_list);
                imageView = (ImageView) view_list.findViewById(R.id.imageView);
                t1 = (TextView) view_list.findViewById(R.id.textView);
                t2 = (TextView) view_list.findViewById(R.id.textView2);
            }
        }


        @Override
        public int getItemCount() {
            //判断是否为0
            if (mlist.size() == 0) {
                return 0;
            }
            return mlist.size();
        }

        @Override
        public void onBindViewHolder(RecyclerViewAdapter.ViewHolder viewHolder, int i) {
           User obj =mlist.get(i);
            viewHolder.t1.setText(obj.getT_date());
            viewHolder.t2.setText(obj.getT_user()+i);
        }


        @Override
        public RecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
            //获得布局对象,类似与ListView中的getView()

            View view_list = LayoutInflater.from(MainActivity.this).inflate(R.layout.recyclerview_list, null);

            ViewHolder viewHolder = new ViewHolder(view_list);
            return viewHolder;
        }

        public void add_list(User item, int position) {
            mlist.add(position, item);
            notifyItemInserted(position);
        }

        public void removes(User item) {
            int position = mlist.indexOf(item);
            mlist.remove(position);
            notifyItemRemoved(position);
        }
    }


    class User {
        private String t_date;
        private String t_user = "百合不是茶";

        public String getT_date() {
            return t_date;
        }

        public String getT_user() {
            return t_user;
        }

        public void setT_date(String t_date) {
            this.t_date = t_date;
        }

        public void setT_user(String t_user) {
            this.t_user = t_user;
        }


    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

 

 

 

 

 

  • 大小: 81.2 KB
1
0
分享到:
评论

相关推荐

    RecyclerView结合CardView的照片瀑布流

    要在RecyclerView中使用CardView,首先在XML布局文件中定义CardView,然后在RecyclerView的Adapter中创建ViewHolder,将CardView作为ViewHolder的根视图。在ViewHolder中,你可以设置CardView的内容,如图片、文本...

    Android Training学习笔记——RecyclerView和CardView

    总的来说,掌握RecyclerView和CardView的使用对于Android开发者至关重要,它们能够帮助开发者构建出高效的列表视图和具有Material Design风格的界面。而Navigation组件则能帮助优化应用的导航逻辑,提高用户体验。...

    recyclerview和cardview的结合使用

    下面我们将深入探讨如何将RecyclerView与CardView结合使用,以及它们各自的特点和应用场景。 ### RecyclerView介绍 RecyclerView是一个比ListView更高效、更灵活的列表视图。它通过ViewHolder模式优化了性能,减少...

    RecyclerView+CardView实现横向卡片式滑动效果

    本文主要介绍了使用RecyclerView和CardView实现横向卡片式滑动效果的方法,旨在提高Android应用程序的用户体验。下面是相关知识点的详细解释: 1. RecyclerView简介 RecyclerView是Android SDK中的一种控件,官方...

    RecyclerView和CardView演示Demo

    1. 添加依赖:首先在build.gradle文件中添加RecyclerView和CardView的依赖库,确保项目可以使用这两个组件。 2. 创建CardView布局:在res/layout目录下,设计CardView的XML布局文件,定义卡片的样式,包括内容区域...

    android RecyclerView CardView实践

    本文将深入探讨如何在Android 5.0及以上版本中使用RecyclerView和CardView进行实践。 RecyclerView是一个高效的视图回收复用组件,主要用于处理大量数据的列表展示。与之前的ListView相比,RecyclerView具有更好的...

    android 新组件RecyclerView及CardView 使用详解

    在Android开发中,RecyclerView和...总之,理解并熟练掌握RecyclerView和CardView的使用,对于提高Android应用的界面设计和用户体验至关重要。通过不断实践和探索,开发者可以创造出更多富有创意和功能丰富的界面。

    RecyclerView+CardView+Glide加载图片实现瀑布流

    在Android应用开发中,RecyclerView、CardView和Glide是三个非常重要的组件,它们共同作用可以构建出高效且美观的图片加载瀑布流界面。本篇文章将详细介绍这三个组件的使用方法及其结合实现瀑布流的过程。 首先,...

    ndroid之 RecyclerView,CardView 详解和相对应的上拉刷新下拉加载

    Android之 RecyclerView,CardView 详解和相对应的上拉刷新下拉加载,博客地址:http://blog.csdn.net/dickyqie/article/details/54913289

    RecyclerView+CardView+Palette Demo

    一个集成RecyclerView+CardView+Palette的Demo

    Android-RecyclerViewAndCardView:演示 RecyclerView 和 CardView 使用的简单联系人应用程序

    Android-RecyclerViewAndCardView 演示 RecyclerView 和 CardView 使用的简单联系人应用程序。 创建主要是为了演示 RecyclerView 和 CardView。 它不是一个功能齐全的“联系人”应用程序!

    RecyclerView中嵌套CardView

    在Android开发中,`RecyclerView`和`CardView`是两个非常重要的组件,它们结合使用能够构建出高效且美观的用户界面。本篇文章将详细讲解如何在`RecyclerView`中嵌套`CardView`,以及实现这一功能所涉及的关键知识点...

    recyclerview_cardview

    总的来说,“recyclerview_cardview”项目是一个很好的学习资源,帮助开发者理解如何在Android应用中有效地使用RecyclerView和CardView,创建出既高效又美观的列表或网格视图。这两个组件的结合不仅提高了用户体验,...

    recyclerView和CardView的jar包

    在Android开发中,`RecyclerView`和`CardView`是两个非常重要的组件,广泛应用于构建高效且可定制的用户界面。这两个组件都属于Android Support Library的一部分,允许开发者在更老版本的Android系统上使用新功能。 ...

    类似淘宝订单列表(多于两条的时候收起可展开)RecyclerView+CardView实现

    本教程将详细讲解如何使用`RecyclerView`和`CardView`来实现这样一个功能丰富的订单列表,特别是当单个订单包含多个商品时,如何实现收起和展开的效果。 首先,`RecyclerView`是Android SDK提供的一种高效的数据...

    RecyclerView:recyclerview + cardview

    Android5.0 RecyclerView的使用方法 预览 用来做什么 这是Android5.0 新特性,主要用来替代ListView的使用,在RecyclerView标准化了ViewHolder类似于ListView中convertView用来做视图缓存. 可以通过设置LayoutManager...

    RecyclerView_CardView_Demo

    本文将详细讲解如何使用这两个组件来创建一个`RecyclerView_CardView_Demo`。 首先,我们来了解`RecyclerView`。它是Android SDK中的一个高级视图组件,用于显示可滚动的列表或网格数据。与传统的`ListView`相比,`...

    RecyclerView和CardView实现列表功能,用LeanCloud所存储的数据中填充RecyclerView

    总的来说,这个项目展示了如何在Android应用中使用RecyclerView和CardView来展示从云服务获取的数据,同时通过自定义适配器和图片加载策略优化了用户体验。这样的实现方式在现代Android应用中十分常见,对于学习...

    recyclerview-cardview-example:示例如何在Android中实现RecyclerView和CardView

    在Android开发中,RecyclerView和CardView是两个非常重要的组件,它们极大地提升了应用界面的用户体验和性能。本项目,"recyclerview-cardview-example",旨在演示如何有效地结合这两个组件来创建一个美观且高效的...

    侧拉菜单,顶部滑动导航栏,RecyclerView,CardView等新控件的使用

    这些控件包括侧拉菜单、顶部滑动导航栏、RecyclerView以及CardView,它们大大提升了应用的交互性和视觉效果。本文将详细介绍这些控件的使用方法及其在实际开发中的应用。 首先,侧拉菜单(DrawerLayout)是Android...

Global site tag (gtag.js) - Google Analytics