安卓4.4.4怎么升级5.0。RecyclerView是support.v7包中的控件,可以说是ListView和GridView的增强升级版。
RecyclerView可加载列表样式的数据,类似ListView的加载效果,也可以加载九宫格样式(类似GridView效果)或者瀑布流样式数据,也就是说RecyclerView的可扩展性强,所以在使用时,必须要指定其显示的基本样式
LinearLayoutManager 线性,显示数据格式为列表样式
GridLayoutManager 九宫格样式
StaggeredGridLayoutManager 瀑布流样式
添加依赖
compile 'com.android.support:recyclerview-v7:25.0.0'
<android.support.v7.widget.RecyclerView
android:id = "@+id/rv_list"android:layout_width = "match_parent"android:layout_height = "match_parent" />
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);
//设置竖直排列
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
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);}}
}
//加载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);
蓝牙5.0速度、
//设置竖直排列
gridLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
如 1.2.3 中所写Adapter
在这里使用到的条目布局
<?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>
蓝牙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);}}}
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的宽度,否则不会出现这样的效果
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态