您的位置:首页 > 其它

recylerView的基本使用(线性布局,网格布局,瀑布布局)

2018-01-05 18:55 393 查看
权限:
compile 'com.android.support:recyclerview-v7:26+'

activity_main.xml中,
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerView"
></android.support.v7.widget.RecyclerView>

item.xml <TextView
android:id="@+id/tvContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="sss"/>


MyAdapter.javapublic class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {

private Context context;
//存放随机产生的高度
private List<Integer> heightList = new ArrayList<>();
public MyAdapter(Context conext){
this.context = conext;
//随机生成View高度
for (int i = 0;i < 10;++i){
int height = new Random().nextInt(200) + 100;
heightList.add(height);
}
}

@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//创建ViewHolder
//View view = View.inflate(context,R.layout.item,null);
View view = LayoutInflater.from(context).inflate(R.layout.item,parent,false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}

@Override
public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
//将数据绑定viewhoder所持有的控件 TextView
//width height 就是他的属性对象
ViewGroup.LayoutParams params = holder.itemView.getLayoutParams();
//动态去设置它的宽高
params.height = heightList.get(position);
//保存View高度
holder.itemView.setLayoutParams(params);
//根据postion生成不同的颜色
if(position %3 == 0){
holder.itemView.setBackgroundColor(Color.MAGENTA);
}else{
holder.itemView.setBackgroundColor(Color.YELLOW);
}
holder.tvContent.setText("中国建成了世界上最快的铁路,那最长的高速铁路线路在哪呢?没错,还是在中国。");

}

@Override
public int getItemCount() {
return 10;//显示的条目数
}

class ViewHolder extends RecyclerView.ViewHolder{

private TextView tvContent;
public ViewHolder(View itemView) {
super(itemView);
tvContent = itemView.findViewById(R.id.tvContent);
}
}
}


MainActivity.java
全局变量:
private RecyclerView recyclerView;正文: recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
MyAdapter adater = new MyAdapter(this);
//参数1 : 上下文
//参数2 : 指明界面显示方向
//参数3 : 反转 false 顺序 true 倒序 1,2,3 3,2,1
//第一种布局管理器 : LinearLayoutManger
recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));
//第二种 布局管理器 : GridLayoutManager
//Horizontal 2行 Vertical 2 代表 2列
// recyclerView.setLayoutManager(new GridLayoutManager(this,2,GridLayoutManager.VERTICAL,false));

4000
//第三种布局管理器:瀑布流管理器
//recyclerView.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL));
//添加分割线
recyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
recyclerView.setAdapter(adater);

Recyclerview变一行滚动
写在setapter上面
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
recyclerview.setLayoutManager(linearLayoutManager);
//text文字加横线(列如原价 )
text.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: