Android recycleview使用详解,recycleview实现九宫格布局即横向排列,recycleview设置item占位数量大号item或小号item

1、添加recycleview依赖

compile('com.android.support:recyclerview-v7:25.1.1') {
    force = true
}

2、item.xml




    

        

        

            
    

3、entity.class

/**
 * 作者:created by meixi
 * 邮箱:[email protected]
 * 日期:2018/8/30 10
 */
public class TestEntity {

    private String title;
    private String https;
    private boolean ifshow;

    public boolean isIfshow() {
        return ifshow;
    }

    public void setIfshow(boolean ifshow) {
        this.ifshow = ifshow;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getHttps() {
        return https;
    }

    public void setHttps(String https) {
        this.https = https;
    }
}

4、adapter.class

public class NewgroupsAdapter extends RecyclerView.Adapter {
    private List entityList;
    private Context context;
    private OnItemClickListener mOnItemClickListener;
    private OnItemClickListenerupd mOnItemClickListenerupd;
    private Boolean is_edit = false;

    public NewgroupsAdapter(Context context, List list) {
        this.context = context;
        this.entityList = list;
    }

    public void setEdit() {//activity刷新adapter方法
        is_edit = !is_edit;
        notifyDataSetChanged();
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.item_add_groups_number, null);


        ViewHolder holder = new ViewHolder(view);
        holder.imageView = (ImageView)view.findViewById(R.id.item_information_choose_image);
        holder.textView = (TextView) view.findViewById(R.id.item_company_member_name);
        return holder;
    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {
        final TestEntity entity = entityList.get(position);


        if (is_edit) {
            holder.imageView.setVisibility(View.VISIBLE);
        } else {
            holder.imageView.setVisibility(View.GONE);

        }

        holder.textView.setText(entity.getTitle());//标题

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mOnItemClickListenerupd.onItemClick(position);
            }
        });

        holder.textView.setOnClickListener(new View.OnClickListener() {//点击删除
            @Override
            public void onClick(View view) {
                if (is_edit) {
                }else {
                    mOnItemClickListener.onItemClick(holder.itemView, position); // 2
                }
            }
        });
    }
    @Override
    public int getItemCount() {
        return entityList.size();
    }
    
    public class ViewHolder extends RecyclerView.ViewHolder {

        public ImageView imageView;
        public TextView textView;
        public ViewHolder(View view) {
            super(view);
        }
    }

    public interface OnItemClickListener {
        void onItemClick(View view, int position);
    }

    public void setOnItemminiClickListener(OnItemClickListener mOnItemClickListener) {//元素点击
        this.mOnItemClickListener = mOnItemClickListener;
    }
    public  interface OnItemClickListenerupd {
        void onItemClick( int position);
    }
    public void setOnItemClickListener(OnItemClickListenerupd mOnItemClickListener) {//item点击
        this.mOnItemClickListenerupd = mOnItemClickListener;
    }

}

5、activity调用详解

 

private List testEntities = new ArrayList<>();
private RecyclerView recyclerView;
private NewgroupsAdapter newgroupsAdapter;

 

  private void initRecyclerView() {
      recyclerView = (RecyclerView)findViewById(R.id.myrecyclerview);
        newgroupsAdapter = new NewgroupsAdapter(MainActivity.this, testEntities);
      newgroupsAdapter.setOnItemminiClickListener(new NewgroupsAdapter.OnItemClickListener() {
            @Override
            public void onItemClick( View view,int posi) {

                Toast.makeText(MainActivity.this,posi+"",Toast.LENGTH_LONG).show();
            }
        });
      newgroupsAdapter.setOnItemClickListener(new NewgroupsAdapter.OnItemClickListenerupd() {
            @Override
            public void onItemClick(int position) {
                Toast.makeText(MainActivity.this,position+"max",Toast.LENGTH_LONG).show();
            }
        });
//        recyclerView.setLayoutManager(new GridLayoutManager(getApplicationContext(), 5));//横向布局,九宫格
        recyclerView.setLayoutManager(new LinearLayoutManager(this));//竖向布局,默认
      recyclerView.setAdapter(newgroupsAdapter);
    }

 

给recycleview 赋值

for (int i=0;i<29;i++){
    TestEntity testEntity = new TestEntity();
    testEntity.setHttps("baidu.com");
    testEntity.setTitle("百度。com");
    testEntities.add(testEntity);
    if (i==28){
        newgroupsAdapter.notifyDataSetChanged();

    }
}

 

recycleview设置item占位数量

GridLayoutManager layoutManage = new GridLayoutManager(this, 2);
layoutManage.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
    @Override
    public int getSpanSize(int position) {
        if (tagBeanList.get(position).getTag_name().length()>MAX)//判断条件,如大号item或者小号item
            return 2;
        return 1;
    }
});
tagRecyclerView.setLayoutManager(layoutManage);

你可能感兴趣的:(移动开发)