RecyclerView添加头布局
来源:互联网 发布:etm软件会员 编辑:程序博客网 时间:2024/05/22 15:07
添加依赖
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
======================================================================
public class MainActivity extends AppCompatActivity { private RecyclerView recyclerView; private List<String> list; private MyRlAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = (RecyclerView) findViewById(R.id.main_Rl); recyclerView.setLayoutManager(new LinearLayoutManager(this)); list = new ArrayList<>(); for (int i = 0; i < 50; i++) { list.add("想个名字真难" + i); } adapter = new MyRlAdapter(); TextView textView = new TextView(this); textView.setText("这是第一个头布局"); TextView textView1 = new TextView(this); textView1.setText("这是第二个头布局"); TextView textView2 = new TextView(this); textView2.setText("这是第三个头布局"); adapter.addHeader(textView); adapter.addHeader(textView1); adapter.addHeader(textView2); recyclerView.setAdapter(adapter); } class MyRlAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == HEADER_TYPE) { View view = View.inflate(MainActivity.this, R.layout.rv_header, null); MyHeaderViewHolder headerViewHolder = new MyHeaderViewHolder(view); return headerViewHolder; } else { View view = View.inflate(MainActivity.this, R.layout.rv_item, null); MyViewHolder myViewHolder = new MyViewHolder(view); return myViewHolder; } } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (holder instanceof MyHeaderViewHolder) { if (((MyHeaderViewHolder) holder).layout.getChildCount() == 0) { ((MyHeaderViewHolder) holder).layout.addView(headerList.get(position)); } } else { ((MyViewHolder) holder).textView.setText(list.get(position - headerList.size())); } } @Override public int getItemCount() { return list.size() + headerList.size(); } class MyViewHolder extends RecyclerView.ViewHolder { TextView textView; public MyViewHolder(View itemView) { super(itemView); textView = itemView.findViewById(R.id.item_tv); } } class MyHeaderViewHolder extends RecyclerView.ViewHolder { LinearLayout layout; public MyHeaderViewHolder(View itemView) { super(itemView); layout = itemView.findViewById(R.id.Ll_header); } } List<View> headerList = new ArrayList<View>(); private final static int HEADER_TYPE = 0; private final static int ITEM_TYPE = 1; @Override public int getItemViewType(int position) { if (position < headerList.size()) { return HEADER_TYPE; } else { return ITEM_TYPE; } } public void addHeader(View view) { if (headerList != null) { headerList.add(view); notifyDataSetChanged(); } } }}
阅读全文
0 0
- RecyclerView添加头布局
- Recyclerview添加头布局
- RecyclerView头布局添加
- RecyclerView添加头布局
- 使用RecyclerView实现动态添加头布局,脚布局
- RecyclerView添加头脚布局,使用SwipeRefreshLayout的实现
- RecyclerView添加Header(头布局)+无限轮播
- RecyclerView的多条目加载,添加头布局
- RecyclerView添加多种布局
- RecyclerView的增强--------添加(多个)头布局和尾布局
- 给RecyclerView添加头布局和底部布局(参考了网络代码)
- recyclerview头布局独占一行
- ListView添加头布局
- recycle添加头布局
- PullToRefresh添加头布局
- RecyclerView使用详解一代替ListView(点击事件,添加头布局,上拉刷新下拉加载)
- android新特性:使用RecyclerViewHeader一键添加RecyclerView头布局并实现轮播效果
- android新特性:使用RecyclerViewHeader一键添加RecyclerView头布局并实现轮播效果
- java 反射(一) 获取Class对象的三种方式
- 【拜小白opencv】35-inRange()函数的使用,对图像进行阈值化/二值化
- 深入编译,链接和运行
- 栈的压入,弹出序列
- object类型数据转json类型的数据
- RecyclerView添加头布局
- Win8.1 安装nltk及nltk_data数据
- My97日期插件实现日期多选
- Unity_DOTween动画的学习(二)_DOTween Sequence 使用图解
- iText解析pdf调研
- QLayout的使用小结
- Spring——控制反转、反射与依赖注入
- 关于静态变量的初始化时机
- JavaScript入门篇--你也有控制权(DOM操作)