RecyclerView(一)综合使用综述(Android 5.0 新特性)

 2023-09-10 阅读 21 评论 0

摘要:Android RecyclerView(一)综合使用综述(Android 5.0 新特性) 安卓4.4.4怎么升级5.0。RecyclerView是support.v7包中的控件,可以说是ListView和GridView的增强升级版。 RecyclerView可加载列表样式的数据,类似ListView的加载效果&#x

Android RecyclerView(一)综合使用综述(Android 5.0 新特性)



安卓4.4.4怎么升级5.0。RecyclerView是support.v7包中的控件,可以说是ListView和GridView的增强升级版。

RecyclerView可加载列表样式的数据,类似ListView的加载效果,也可以加载九宫格样式(类似GridView效果)或者瀑布流样式数据,也就是说RecyclerView的可扩展性强,所以在使用时,必须要指定其显示的基本样式
        LinearLayoutManager 线性,显示数据格式为列表样式
        GridLayoutManager 九宫格样式
        StaggeredGridLayoutManager 瀑布流样式


1 RecyclerView 基本使用


添加依赖    

compile 'com.android.support:recyclerview-v7:25.0.0'
1.1 布局文件中创建使用
<android.support.v7.widget.RecyclerView
    android:id = "@+id/rv_list"android:layout_width = "match_parent"android:layout_height = "match_parent" />
1.2 java代码中加载 设置列表模式
1.2.1 水平方向滑动

Android1?列表样式  图示

//加载RecyclerView
RecyclerView contentRecyclerView = (RecyclerView) findViewById(R.id.rv_list);
//初始化数据
List<String> list = new ArrayList<>();
for (int i = 0; i < 20; i++) {list.add("智慧安卓 -- "+i);
}
//初始化Adapter
ListRecyclerAdapter recyclerAdapter = new ListRecyclerAdapter(this.getApplication(),list);
//初始化排列布局
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this.getApplicationContext());
//设置
contentRecyclerView.setLayoutManager(linearLayoutManager);
//设置水平排列
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
//设置adapter
contentRecyclerView.setAdapter(recyclerAdapter);
1.2.2 竖直方向滑动

列表样式  图示

//设置竖直排列
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
1.2.3 ListRecyclerAdapter配制

public class ListRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {private Context mContext;private List<String> mList;public ListRecyclerAdapter(Application application, List<String> list) {mContext = application;mList = list;}@Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View view =View.inflate(mContext,R.layout.item,null);return new ListRecyclerViewHolder(view);}@Overridepublic void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {}@Overridepublic int getItemCount() {return mList.size();}private static class  ListRecyclerViewHolder extends RecyclerView.ViewHolder{public ListRecyclerViewHolder(View itemView) {super(itemView);}}
}
1.3 java代码中加载 设置九宫格模式
1.3.1 竖直方向滑动

列表样式  图示

//加载RecyclerView
RecyclerView contentRecyclerView = (RecyclerView) findViewById(R.id.rv_list);
//初始化数据
List<String> list = new ArrayList<>();
for (int i = 0; i < 20; i++) {list.add("智慧安卓 -- "+i);
}//初始化Adapter
ListRecyclerAdapter recyclerAdapter = new ListRecyclerAdapter(this.getApplication(),list);
//初始化排列布局
//参数一 上下文对象
//参数二 列数
GridLayoutManager gridLayoutManager = new GridLayoutManager(this.getApplicationContext(),3);
//设置
contentRecyclerView.setLayoutManager(gridLayoutManager);
//设置水平排列
gridLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
//设置adapter
contentRecyclerView.setAdapter(recyclerAdapter);
1.3.2 横向滑动

蓝牙5.0速度、列表样式  图示

//设置竖直排列
gridLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
1.3.3 ListRecyclerAdapter配制

如 1.2.3 中所写Adapter


1.5 java代码中加载 设置瀑布流模式

在这里使用到的条目布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><RelativeLayout
        android:id="@+id/ll_root_view"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_margin="1dp"android:background="#fff"android:orientation="vertical"><TextView
            android:id="@+id/tv_item_text"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#5659fa"android:gravity="center"android:text="测试数据" /></RelativeLayout></RelativeLayout>
1.5.1 上下方向滑动

蓝牙5.0和4.2的区别,列表样式  图示

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rv_list);
//设置布局模式为 竖直方向
//参数一 显示内容为两列
//参数二 子条目排列方式为 水平方式
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
// 设置布局模式
recyclerView.setLayoutManager(staggeredGridLayoutManager);
//初始化Adapter
WaterFallRecyclerAdapter recyclerAdapter = new WaterFallRecyclerAdapter(this.getApplication(),list);
//设置Adapter
recyclerView.setAdapter(recyclerAdapter);


需要注意的是,在这种效果中,显示的每一个Item的高度都不一样,这需要动态的设置Item的高度,否则不会出现这样的效果


//创建适配器 Adapter 与上述创建方式一致//创建 Holder 
private static class CustomViewHolder extends RecyclerView.ViewHolder {public CustomViewHolder (View itemView) {super(itemView);RelativeLayout rootLinearLayout = itemView.findViewById(R.id.ll_root_view);//获取RelativeLayout对应的LayoutParamsRelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) rootLinearLayout.getLayoutParams();if (lp != null) {//重新设置LinearLayout的高度lp.height = (int) (200 + Math.random() * 600);rootLinearLayout.setLayoutParams(lp);}}}
1.5.2 左右方向滑动

列表样式  图示

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rv_list);
//设置布局模式为 竖直方向
//参数一 显示内容为两列
//参数二 子条目排列方式为 竖直方式
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.HORIZONTAL);
// 设置布局模式
recyclerView.setLayoutManager(staggeredGridLayoutManager);
//初始化Adapter
WaterFallRecyclerAdapter recyclerAdapter = new WaterFallRecyclerAdapter(this.getApplication(),list);
//设置Adapter
recyclerView.setAdapter(recyclerAdapter);


需要注意的是,在这种效果中,显示的每一个Item的宽度都不一样,这需要动态的设置Item的宽度,否则不会出现这样的效果

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/35410.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息