RecycleView

来源:互联网 发布:pickit3烧写软件 编辑:程序博客网 时间:2024/05/01 13:23
可以通过设置LayoutManager  设置不同的显示效果

1、在eclipse中导入jar包 方法:找到D:\AndroidSTU\AndroidSDK\extras\android\support\v7\recyclerview\libs  
2、在android studio中导入   file---project  Structure--dependence---添加----Library  dependence--找到
recyclerview ---ok

3、 布局:


图片 
4、图片 图片

4、listView的item布局:
图片 

5、创建类
图片 

6、adapter

图片

第二部分:
自定义分隔线(前面的代码不用动)
   1)在drawable目录下新建
devider_02.xml 
图片
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
 <size android:height="4dp"></size>
    <gradient
        android:centerColor="#ff00ff00"
        android:endColor="#00ff00ff"
        android:startColor="#ffff0000"
        android:type="linear"></gradient>
</shape>
2)在style里添加
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:listDivider">@drawable/devider_02</item>
    </style>
运行效果:
图片 
 
变身  各种view 
图片 
 瀑布流activity:
图片
 
瀑布流adapter:
图片 
图片 

package com.example.administrator.rececleviewdemo;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2015/8/12.
 */
public class StaggeredAdapter extends RecyclerView.Adapter<MyViewHolder> {
    private Context mContext;
    private List<String> mDatas;
    private LayoutInflater inflater;
    private List<Integer> mHeights;//自定义高度
    public StaggeredAdapter(Context mContext, List<String> mDatas){
        this.mContext=mContext;
        this.mDatas=mDatas;
        inflater=LayoutInflater.from(mContext);
        mHeights=new ArrayList<>();
        for(int i=0;i<mDatas.size();i++){
            mHeights.add((int) (100+Math.random()*300));
        }
    }
    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view=inflater.inflate(R.layout.item_single_listitem,parent,false);
        MyViewHolder   myViewHolder=new MyViewHolder(view);
        return myViewHolder;
    }
    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        ViewGroup.LayoutParams  layoutParams = holder.itemView.getLayoutParams();
        layoutParams.height=mHeights.get(position);
        holder.itemView.setLayoutParams(layoutParams);
        holder.textView.setText(mDatas.get(position));
    }

    @Override
    public int getItemCount() {
        return mDatas.size();
    }
}
 
0 0
原创粉丝点击