1.写一个内容的自定义小布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp">
<ImageView
android:id="@+id/waterfall_Image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ace"/>
<TextView
android:id="@+id/waterfall_Name_TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="这里显示名称"
android:textSize="15sp"
android:textColor="@color/colorBlack"
android:layout_gravity="center_horizontal"/>
<TextView
android:id="@+id/waterfall_contents_TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="这里显示内容"
android:textSize="10sp"
android:textColor="@color/colorblue"/> </LinearLayout>

布局预览:

写一个内容适配器class:

package com.example.lenovo.myrecyclerview.RecyclerViewToolkit;

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.lenovo.myrecyclerview.R; import java.util.List; /**
* Created by lenovo on 2018/5/2.
*/ public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder> {
private List<ListData> mDataList;
static class ViewHolder extends RecyclerView.ViewHolder{
ImageView imageAvatar;
TextView nameText;
TextView contentsText;
public ViewHolder(View itemView) {
super(itemView);
//注意这里可能需要import com.example.lenovo.myrecyclerview.R; 才能使用R.id
imageAvatar = (ImageView)itemView.findViewById(R.id.waterfall_Image);
nameText =(TextView) itemView.findViewById(R.id.waterfall_Name_TextView);
contentsText = (TextView)itemView.findViewById(R.id.waterfall_contents_TextView);
}
}
public ListAdapter(List<ListData> listDatas){
mDataList = listDatas;
} @Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.waterfall_list_view,
parent,false);
ViewHolder holder = new ViewHolder(view);
return holder;
} @Override
public void onBindViewHolder(ViewHolder holder, int position) {
ListData listData = mDataList.get(position);
holder.imageAvatar.setImageResource(listData.getImageView());
holder.nameText.setText(listData.getNameText());
holder.contentsText.setText(listData.getContentsText());
} @Override
public int getItemCount() {
return mDataList.size();
}
}

写一个RecyclerView 瀑布列表布局活动class:

package com.example.lenovo.myrecyclerview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager; import com.example.lenovo.myrecyclerview.RecyclerViewToolkit.ListAdapter;
import com.example.lenovo.myrecyclerview.RecyclerViewToolkit.ListData; import java.util.ArrayList;
import java.util.List; public class RecyclerViewActivity extends AppCompatActivity {
private List<ListData> listDatas = new ArrayList<>(); //创建数据list @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recycler_view);
addingData(); //导入数据
RecyclerView recyclerView = (RecyclerView)findViewById(R.id.RecyclerView);
//在此处修改布局排列方向
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(3,
StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(staggeredGridLayoutManager);
ListAdapter listAdapter = new ListAdapter(listDatas); //创建适配器,并且导入数据list
recyclerView.setAdapter(listAdapter);//布局导入适配器
}
//添加数据
public void addingData(){
ListData ace = new ListData(R.drawable.ace,"ace", "波特卡斯·D·艾斯:" +
"烧烧果实的前任能力者,绰号“火拳”,实力强大。");
listDatas.add(ace);
//以下省略..... } }

实现效果图:

最新文章

  1. Beginning Scala study note(3) Object Orientation in Scala
  2. Linux资源监控(Nmon)
  3. Java多线程系列--“JUC集合”07之 ArrayBlockingQueue
  4. 2015-10-11 Sunday 晴 ARM学习
  5. Linux文件系统 (Ubunt)
  6. jQuery Mobile与QUI框架的异曲同工之处
  7. Mysql 格式化日期格式
  8. R语言RJava安装步骤
  9. WEB前端资源集(一)
  10. MySqlBulkLoader设置Columns时要注意的地方
  11. windows安装php和mysql
  12. python练习题:三级菜单
  13. jar 打包命令详解
  14. Spark机器学习2&#183;准备数据(pyspark)
  15. Linux环境下tomcat如何热部署
  16. 编译包中的 Servlet
  17. QGIS3.0.3+Qt5.9+VS2015_x64编译
  18. VScode中Go的相关插件的安装
  19. Android学习笔记(四)之碎片化Fragment实现仿人人客户端的侧边栏
  20. AsBcd的意思

热门文章

  1. 【转】CUDA之Dynamic Parallelism详解
  2. kafka_2.11-0.8.2.1生产者producer的Java实现
  3. centos7 tomcat自启动
  4. 关于SD-SDI,HD-SDI,3G-SDI行号的问题
  5. require的定义看不懂【2】
  6. 黄聪:微信小程序(应用号)资源汇总整理(转)
  7. a标签返回上一页,并刷新
  8. ALGO-143_蓝桥杯_算法训练_字符串变换
  9. 【git】之常用命令
  10. Apple公司Darwin流式服务器源代码分析