recyclerView单行 多行 listView GridView

来源:互联网 发布:面试美工提问哪些问题 编辑:程序博客网 时间:2024/05/17 06:30


要导入依赖   recycler

activity 中的代码-----------------


public class FirstActivity extends Activity {



    private RecyclerView recyclerView;
    private List<String> list;
    private SimpleRecycleAdapter simpleRecycleAdapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);




        recyclerView = findViewById(R.id.recycler_view);


        //数据
        list = new ArrayList<>();
        for (int i=0; i<1000;i++){
            list.add("这是条目"+i);
        }


        //5.必须要指定布局管理器
        recyclerView.setLayoutManager(new LinearLayoutManager(FirstActivity.this,LinearLayoutManager.VERTICAL,false));


        //2.设置适配器展示
        simpleRecycleAdapter = new SimpleRecycleAdapter(FirstActivity.this, list);
        recyclerView.setAdapter(simpleRecycleAdapter);




    }




    public void listView(View view) {
        recyclerView.setLayoutManager(new LinearLayoutManager(FirstActivity.this,LinearLayoutManager.VERTICAL,false));
        simpleRecycleAdapter.notifyDataSetChanged();
    }


    public void gridView(View view) {
        recyclerView.setLayoutManager(new GridLayoutManager(FirstActivity.this,3));
        simpleRecycleAdapter.notifyDataSetChanged();
    }


    public void hengXinag(View view) {
        recyclerView.setLayoutManager(new LinearLayoutManager(FirstActivity.this,LinearLayoutManager.HORIZONTAL,false));
        simpleRecycleAdapter.notifyDataSetChanged();
    }


    public void hengxiangDuoHang(View view) {
        recyclerView.setLayoutManager(new GridLayoutManager(FirstActivity.this,3, OrientationHelper.HORIZONTAL,false));
        simpleRecycleAdapter.notifyDataSetChanged();
    }

}


适配器中的代码---------------------------------


/**
 * Created by Dash on 2017/11/27.
 *
 * 1.写一个类继承RecyclerView.Adapter,,,并且指定它的泛型参数
 * 2.创建泛型Holder....SimpleHolder...继承了RecyclerView.ViewHolder
 *      2.1在RecyclerView.ViewHolder需要找到控件的id
 * 3.视图和holder进行绑定的操作
 * 4.赋值的操作
 */
public class SimpleRecycleAdapter extends RecyclerView.Adapter<SimpleHolder> {
    private List<String> list;
    private Context context;


    public SimpleRecycleAdapter(Context context, List<String> list) {
        this.context = context;
        this.list = list;
    }


    //....回想listView的优化,,,1.创建viewHolder....2.与条目的视图进行绑定的
    //onCreateViewHolder...创建一个ViewHolder....根据条目的视图创建自己的holder对象
    @Override
    public SimpleHolder onCreateViewHolder(ViewGroup parent, int viewType) {


        //inflater...条目的视图
        View view = LayoutInflater.from(context).inflate(android.R.layout.simple_list_item_1, parent, false);


        SimpleHolder holder = new SimpleHolder(view);


        return holder;
    }


    /**
     * onBindViewHolder 绑定上viewHolder之后的操作...主要是赋值(textView,button,checkBox...)的操作
     * @param holder
     * @param position
     */
    @Override
    public void onBindViewHolder(SimpleHolder holder, int position) {


        holder.textView.setText(list.get(position));


    }


    /**
     * 条目的数量
     * @return
     */
    @Override
    public int getItemCount() {
        return list.size();
    }
}

原创粉丝点击