听说RecycleView比ListView更配哦。
在使用的时候要先导入recyclerview
用它替代listview的原因有几个:(我也不知道。。)
先来用一下
public class MainActivity extends AppCompatActivity { private String[] data=new String[]{"hello","itnew","baibai","itnew","baibai","itnew","baibai","itnew", "baibai","itnew","baibai","itnew","baibai","itnew","baibai","itnew","baibai","itnew","baibai", "itnew","baibai","itnew","baibai","itnew","baibai","itnew","baibai","itnew","baibai","itnew","baibai"}; private RecyclerView mRecyclerView; private RecyclerView.LayoutManager mLayoutManager; private RecyclerView.Adapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //开始设置RecyclerView mRecyclerView=(RecyclerView)this.findViewById(R.id.RecyclerView); //设置固定大小 // mRecyclerView.setHasFixedSize(true); //创建线性布局 mLayoutManager = new LinearLayoutManager(this); //垂直方向 //mLayoutManager.setOrientation(OrientationHelper.VERTICAL); //给RecyclerView设置布局管理器 mRecyclerView.setLayoutManager(mLayoutManager); //创建适配器,并且设置 mAdapter = new MyAdapter(this,data); mRecyclerView.setAdapter(mAdapter); } }
public class MyAdapter extends RecyclerView.Adapter { private LayoutInflater mInflater; //设定Item private String[] mTitles; public MyAdapter(Context context,String[] mTitles){ this.mInflater=LayoutInflater.from(context); this.mTitles=mTitles; } //自定义的ViewHolder,持有每个Item的的所有界面元素 public static class mViewHolder extends RecyclerView.ViewHolder { public TextView item_tv; public mViewHolder(View view){ super(view); item_tv = (TextView)view.findViewById(R.id.Recycler_Item); } } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view=mInflater.inflate(R.layout.recyclelist_item,parent,false); return new mViewHolder(view); } //绑定方法,position对应数据索引,与项目数相关 @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { mViewHolder mVH = (mViewHolder) holder; mVH.item_tv.setText(mTitles[position]); } //设置RecyclerView的项目数 @Override public int getItemCount() { return mTitles.length; } }Item布局只放入了一个TextView,加了个button,效果就和ListView差不多。上下拉动的感觉。