Android 中控件RecyclerView詳解及實現瀑布流式佈局

RecyclerView加載不同view實現效果,支持加載多個view,並且支持用volley獲取數據,
項目主要介紹:
初始化視圖:
    mRV=(RecyclerView) findViewById(R.id.rv_basefragment);
        mRV.setLayoutManager(new LinearLayoutManager(this));


 //初始化請求隊列 queue = Volley.newRequestQueue(this);
//獲取網絡接口
StringRequest stringRequest=new StringRequest(URL, new Response.Listener<String>() {

            @Override
            public void onResponse(String response) {
                //處理數據
                processData(response);
                
            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                System.out.println(error.getMessage()+"ddddddddddddddddddddddddddddddddddddddddddddd");
            }
        });
        
        //將請求加入到隊列中
        queue.add(stringRequest);

 

 

//視圖綁定
/*
     * onBindViewHolder 根據ViewHolder_01獲取多個view
     * */
    @Override
    public void onBindViewHolder(BaseViewHolder holder, int position) {
         switch (superData.get(position).first){
         case COMMUNITY_TOP:
             ((ViewHolder_01)holder).initData(communityBean);
             break;
         case COMMUNITY_OHTER:
             ((ViewHolder_02)holder).initData(superData.get(position));
             break;
     }
    }
    
/*
     * onCreateViewHolder 根據類型綁定多個ViewHolder_01,加載多個不同view
     * */
    @Override
    public BaseViewHolder onCreateViewHolder(ViewGroup arg0, int type) {
        
        switch (type) {
        case COMMUNITY_TOP:
            return new ViewHolder_01(View.inflate(context, R.layout.item_community_top, null),context);
        case COMMUNITY_OHTER:
            return new ViewHolder_02(View.inflate(context, R.layout.item_community_other, null),context);
        }
        
        return new ViewHolder_02(View.inflate(context, R.layout.item_community_other, null),context);
    }


運行效果:






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章