给RecyclerView添加头布局和底部布局(参考了网络代码)
来源:互联网 发布:淘宝的钻石和皇冠 编辑:程序博客网 时间:2024/05/17 08:31
package com.ennew.ui.adapter;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 com.ennew.R;import java.util.ArrayList;import java.util.List;/** * 新增、填写询价单 * Created by tianhongyan on 2017/6/21. */public class EnquiryCompareAddAdapter extends RecyclerView.Adapter<EnquiryCompareAddAdapter.MyHolder> { private RecyclerView mRecyclerView; private List<String> data = new ArrayList<>(); private Context mContext; private View VIEW_FOOTER; private View VIEW_HEADER; private int TYPE_NORMAL = 1000; private int TYPE_HEADER = 1001; private int TYPE_FOOTER = 1002; public EnquiryCompareAddAdapter(Context mContext) { initData(); this.mContext = mContext; } @Override public int getItemViewType(int position) { if (isHeaderView(position)) { return TYPE_HEADER; } else if (isFooterView(position)) { return TYPE_FOOTER; } else { return TYPE_NORMAL; } } @Override public EnquiryCompareAddAdapter.MyHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == TYPE_FOOTER) { return new MyHolder(VIEW_FOOTER); } else if (viewType == TYPE_HEADER) { return new MyHolder(VIEW_HEADER); } else { return new MyHolder(getLayout(R.layout.item_enquiry_compare_add)); } } @Override public void onBindViewHolder(MyHolder holder, int position) { if (!isHeaderView(position) && !isFooterView(position)) { if (haveHeaderView()){ position--; } TextView content = (TextView) holder.itemView.findViewById(R.id.tv_good_name); content.setText(data.get(position)); } } @Override public int getItemCount() { int count = (data == null ? 0 : data.size()); if (VIEW_FOOTER != null) { count++; } if (VIEW_HEADER != null) { count++; } return count; } @Override public void onAttachedToRecyclerView(RecyclerView recyclerView) { try { if (mRecyclerView == null && mRecyclerView != recyclerView) { mRecyclerView = recyclerView; } } catch (Exception e) { e.printStackTrace(); } } private View getLayout(int layoutId) { return LayoutInflater.from(mContext).inflate(layoutId, null); } public void addHeaderView(View headerView) { if (haveHeaderView()) { throw new IllegalStateException("hearview has already exists!"); } else { ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); headerView.setLayoutParams(params); VIEW_HEADER = headerView; notifyItemInserted(0); } } public void addFooterView(View footerView) { if (haveFooterView()) { throw new IllegalStateException("footerView has already exists!"); } else { ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); footerView.setLayoutParams(params); VIEW_FOOTER = footerView; notifyItemInserted(getItemCount() - 1); } } private boolean haveHeaderView() { return VIEW_HEADER != null; } public boolean haveFooterView() { return VIEW_FOOTER != null; } private boolean isHeaderView(int position) { return haveHeaderView() && position == 0; } private boolean isFooterView(int position) { return haveFooterView() && position == getItemCount() - 1; } public static class MyHolder extends RecyclerView.ViewHolder { public MyHolder(View itemView) { super(itemView); } } void initData(){ for(int i=0;i<50;i++){ data.add("index "+i); } }}
阅读全文
0 0
- 给RecyclerView添加头布局和底部布局(参考了网络代码)
- RecyclerView添加头布局
- Recyclerview添加头布局
- RecyclerView头布局添加
- RecyclerView添加头布局
- RecyclerView添加Header(头布局)+无限轮播
- RecyclerView的增强--------添加(多个)头布局和尾布局
- 使用RecyclerView实现动态添加头布局,脚布局
- ListView添加头布局和脚布局
- Material Design RecyclerView添加头部底部布局(五)
- RecyclerView添加头脚布局,使用SwipeRefreshLayout的实现
- RecyclerView的多条目加载,添加头布局
- (4.1.45.1)RecyclerView 添加头部和尾部布局 一
- RecyclerView 添加头部和尾部布局
- RecyclerView 添加头部和尾部布局
- RecyclerView 添加头部和尾部布局
- RecyclerView添加多种布局
- recyclerview头布局独占一行
- Mysql—实现批量插入,存在就更新,不存在就插入
- duplicate symbol
- redis集群搭建测试-2
- java 求数组中重复元素的个数
- C语言---计算机中小数存储
- 给RecyclerView添加头布局和底部布局(参考了网络代码)
- mac下卸载mysql
- iOS更新公有CocoaPods库的版本
- ORACLE GROUPING函数的使用
- jass 添加资源的代码
- C#使用RSA进行私钥加密公钥解密
- IOS-UILabel自适应高度
- ThinkPHP 3.2.2 视图模板中使用字符串截取函数
- mongo性能优化