//首先主页面代码
public class MainActivity extends AppCompatActivity {
private List<String> mDatas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDatas=new ArrayList<String>();
for (int i=0;i<10;i++){
mDatas.add("你好"+i);
}
RecyclerView rv= (RecyclerView) findViewById(R.id.rv);
//ListView
//rv.setLayoutManager(new LinearLayoutManager(this));
//GridView
//rv.setLayoutManager(new GridLayoutManager(this,2));
//类似于瀑布流
rv.setLayoutManager(new StaggeredGridLayoutManager(2, OrientationHelper.VERTICAL));
MyAdapter adapter=new MyAdapter();
rv.setAdapter(adapter);
}
//适配器代码
<pre name="code" class="java"> public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>{
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
MyViewHolder holder=new MyViewHolder(LayoutInflater.from(MainActivity.this).inflate(R.layout.item,parent,false));
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.tv.setText(mDatas.get(position)+"");
<span style="white-space:pre"> </span> //如果想实现瀑布流就给每个item随机的高
/*ViewGroup.LayoutParams params=holder.itemView.getLayoutParams();
ArrayList<Integer> height=new ArrayList<Integer>();
for (int i=0;i<mDatas.size();i++){
height.add((int)(200+Math.random()*400));
}
params.height=height.get(position);*/
}
@Override
public int getItemCount() {
return mDatas.size();
}
class MyViewHolder extends ViewHolder
{
TextView tv;
public MyViewHolder(View view)
{
super(view);
tv = (TextView) view.findViewById(R.id.id_num);
}
}
}
//主布局的文件
<android.support.v7.widget.RecyclerView
android:id="@+id/rv"
android:divider="#ffff0000"
android:dividerHeight="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
//item布局文件
<pre name="code" class="html"> <TextView
android:id="@+id/id_num"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="1" />