package com.example.lsn2_materialdesign_recyclerview;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private ArrayList<String> list;
private MyRecyclerAdapter adapter;
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = new ArrayList<String>();
for(int i=0; i<60; i++){
list.add("item"+i);
}
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
adapter = new MyRecyclerAdapter(list);
//设置布局管理器,LinearLayout为线性布局,默认为垂直
//recyclerView.setLayoutManager(new LinearLayoutManager(this));
//设置为水平
//recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true));
//表格布局
//recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
//瀑布流布局
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(4, LinearLayoutManager.VERTICAL));
recyclerView.setAdapter(adapter);
}
}
package com.example.lsn2_materialdesign_recyclerview;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
public class MyRecyclerAdapter extends RecyclerView.Adapter<MyRecyclerAdapter.MyViewHolder> {
private List<String> list;
class MyViewHolder extends RecyclerView.ViewHolder{
private TextView tv;
public MyViewHolder(View itemView) {
super(itemView);
tv = (TextView) itemView.findViewById(android.R.id.text1);
}
}
public MyRecyclerAdapter(List<String> list){
this.list = list;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//创建一个ViewHolder
MyViewHolder holder = new MyViewHolder(View.inflate(parent.getContext(), android.R.layout.simple_list_item_1, null));
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
//绑定数据
holder.tv.setText(list.get(position));
}
@Override
public int getItemCount() {
return list.size();
}
}
运行结果:
(1)垂直线性布局
(2)水平线性布局
(3)表格布局
(4)瀑布流布局