Android RecyclerView 是Android 5.0 以后提供的support v7中一个取代 ListView 的控件
RecyclerView 的使用:
import android.app.Activity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
public class MainActivity extends Activity {
private RecyclerView rv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
rv = new RecyclerView(this);
setContentView(rv);
rv.setLayoutManager(new LinearLayoutManager(this));
rv.setAdapter(new MyAdapter());
}
}
MyAdapter 代码:
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
/**
* Created by Administrator on 2015/5/19.
*/
class MyAdapter extends RecyclerView.Adapter {
class ViewHolder extends RecyclerView.ViewHolder {
private View root;
private TextView title;
private TextView content;
public ViewHolder(View root) {
super(root);
title = (TextView) root.findViewById(R.id.tvTitle);
content = (TextView) root.findViewById(R.id.tvContent);
}
public TextView getContent() {
return content;
}
public TextView getTitle() {
return title;
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
return new ViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_cell,null));
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {
ViewHolder vh = (ViewHolder) viewHolder;
vh.getContent().setText(data[i].getContent());
vh.getTitle().setText(data[i].getTitle());
}
@Override
public int getItemCount() {
return data.length;
}
CellData data[] = new CellData[]{new CellData(),new CellData(),new CellData()};
}
RecycleView 的布局:
//第二个参数为多少列 第三个参数为布局方向,第四个参数为 是否翻转 rv.setLayoutManager(new GridLayoutManager(this,3,LinearLayoutManager.HORIZONTAL,false)); rv.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false));