RecyCleView用法

来源:互联网 发布:苹果弹琴软件 编辑:程序博客网 时间:2024/05/22 06:07
package bawei.recycdemo;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.OrientationHelper;import android.support.v7.widget.RecyclerView;import android.view.View;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity    implements View.OnClickListener{    private RecyclerView mRecyclerView;    private List<String> mList;    private MyAdapter mAdapter;    private int index;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initData();        initView();    }    private void initData() {        mList=new ArrayList<>();        for (int i=0;i<50;i++)            mList.add("item: "+i);    }    private void initView() {        mRecyclerView = (RecyclerView)findViewById(R.id.recyclerview);        mAdapter = new MyAdapter(mList,this);        LinearLayoutManager layoutManager =                new LinearLayoutManager(this);        layoutManager.setOrientation(OrientationHelper.VERTICAL);        mRecyclerView.setLayoutManager(layoutManager);        mRecyclerView.setAdapter(mAdapter);    }    @Override    public void onClick(View v) {        index++;        index = index%4;        change();    }    private void change() {        switch (index){            case 0:                LinearLayoutManager layoutManager =                        new LinearLayoutManager(this);                layoutManager.setOrientation(OrientationHelper.VERTICAL);                mRecyclerView.setLayoutManager(layoutManager);                break;            case 1:                LinearLayoutManager layoutManager1 =                        new LinearLayoutManager(this);                layoutManager1.setOrientation(OrientationHelper.HORIZONTAL);                mRecyclerView.setLayoutManager(layoutManager1);                break;            case 2:                GridLayoutManager gridLayoutManager =                        new GridLayoutManager(this,3);                mRecyclerView.setLayoutManager(gridLayoutManager);                break;            case 3:                GridLayoutManager gridLayoutManager1 =                        new GridLayoutManager(this,3);                gridLayoutManager1.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {                    @Override                    public int getSpanSize(int position) {                        return position%10==0?3:1;                    }                });                mRecyclerView.setLayoutManager(gridLayoutManager1);                break;        }    }}

适配器

package bawei.recycdemo;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import java.util.List;/** * Created by  on 2016/11/12. */public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>{    private List<String> list;    private Context context;    public MyAdapter(List<String> list, Context context) {        this.list = list;        this.context = context;    }    @Override    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(context)                .inflate(R.layout.item,parent,false);        return new MyViewHolder(view);    }    @Override    public void onBindViewHolder(MyViewHolder holder, int position) {        holder.tv.setText(list.get(position));    }    @Override    public int getItemCount() {        return list.size();    }    class MyViewHolder extends RecyclerView.ViewHolder{        TextView tv;        public MyViewHolder(View itemView) {            super(itemView);            tv = (TextView)itemView.findViewById(R.id.tv);        }    }}
0 0