当前位置:网站首页>Recyclerview add header
Recyclerview add header
2022-07-02 04:02:00 【xiyangyang8110】
Header+ Single style item layout
package com.lwksample.rcvadapter;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager;
import com.lwkandroid.rcvadapter.RcvMultiAdapter;
import com.lwkandroid.rcvadapter.bean.RcvSectionWrapper;
import com.lwkandroid.rcvadapter.holder.RcvHolder;
import com.lwkandroid.rcvadapter.listener.RcvItemViewClickListener;
import com.lwkandroid.rcvadapter.listener.RcvItemViewLongClickListener;
import com.lwkandroid.rcvadapter.listener.RcvLoadMoreListener;
import com.lwkandroid.rcvadapter.ui.RcvDefLoadMoreView;
import com.lwkandroid.rcvadapter.utils.RcvGridDecoration;
import com.lwkandroid.rcvadapter.utils.RcvLinearDecoration;
/**
* Effect interface
*/
public class Detail1Activity extends AppCompatActivity implements RcvMultiAdapter.OnChildClickListener
{
private static final String TAG = "Detail1Activity";
private int viewTypeFlag;
private RecyclerView mRecyclerView;
private RcvMultiAdapter mAdapter;
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
mHandler = new Handler(getMainLooper());
mRecyclerView = (RecyclerView) findViewById(R.id.rcv_detail);
mRecyclerView.setLayoutManager(new LinearLayoutManager(Detail1Activity.this, RecyclerView.VERTICAL, false));
mRecyclerView.addItemDecoration(RcvLinearDecoration.createDefaultVertical(Color.DKGRAY));
mAdapter = new TestSingleAdapter(this, null);
// mAdapter = new TestSectionMultiLabelAdapter(this, null);
// add to HeaderView、FooterView、LoadMore
// Set first RecyclerView Of LayoutManager!!!!
View headerView = getLayoutInflater().inflate(R.layout.layout_headview, (ViewGroup) findViewById(android.R.id.content), false);
mAdapter.addHeaderView(headerView);
if (viewTypeFlag == ParamsFlag.VIEW_TYPE_SECTION)
mAdapter.refreshDatas(DataModel.getSomeSectionData(30));
else
mAdapter.refreshDatas(DataModel.getSomeTestData(" Analog data ", 30));
RcvDefLoadMoreView loadMoreView = new RcvDefLoadMoreView.Builder()
.setTextColor(Color.BLUE)
.setTextSizeResId(R.dimen.text_size_test)
.setIconAndLoadingSizeResId(R.dimen.icon_size_test)
.build(this);
mAdapter.setLoadMoreLayout(loadMoreView);
mAdapter.enableLoadMore(true);
mAdapter.setOnLoadMoreListener(new RcvLoadMoreListener()
{
@Override
public void onLoadMoreRequest()
{
mHandler.postDelayed(new Runnable()
{
@Override
public void run()
{
if (viewTypeFlag == ParamsFlag.VIEW_TYPE_SECTION)
{
mAdapter.notifyLoadMoreSuccess(DataModel.getSomeSectionData(5), false);
} else
{
mAdapter.notifyLoadMoreSuccess(DataModel.getSomeTestData(" The new data ", 5), false);
}
}
}, 1000);
}
});
//item Click events for
Log.e("wy", "onCreate: "+viewTypeFlag);
if (viewTypeFlag == ParamsFlag.VIEW_TYPE_SECTION)
{
// Pay attention to the generic type of click monitoring !!!!
mAdapter.setOnItemClickListener(new RcvItemViewClickListener<RcvSectionWrapper<TestSection, TestData>>()
{
@Override
public void onItemViewClicked(RcvHolder holder, RcvSectionWrapper<TestSection, TestData> wrapper, int position)
{
Toast.makeText(Detail1Activity.this, "Click position=" + position + " wrapper=" + wrapper, Toast.LENGTH_SHORT).show();
}
});
mAdapter.setOnItemLongClickListener(new RcvItemViewLongClickListener<RcvSectionWrapper<TestSection, TestData>>()
{
@Override
public void onItemViewLongClicked(RcvHolder holder, RcvSectionWrapper<TestSection, TestData> wrapper, int position)
{
Toast.makeText(Detail1Activity.this, "LongClick position=" + position + " wrapper=" + wrapper, Toast.LENGTH_SHORT).show();
}
});
} else
{
Log.e("wy", "121onCreate: "+viewTypeFlag);
mAdapter.setOnItemClickListener(new RcvItemViewClickListener<TestData>()
{
@Override
public void onItemViewClicked(RcvHolder holder, TestData testData, int position)
{
Log.e("wy", "128onCreate: "+viewTypeFlag);
Toast.makeText(Detail1Activity.this, "Click position=" + position + " data=" + testData, Toast.LENGTH_SHORT).show();
}
});
mAdapter.setOnItemLongClickListener(new RcvItemViewLongClickListener<TestData>()
{
@Override
public void onItemViewLongClicked(RcvHolder holder, TestData testData, int position)
{
Toast.makeText(Detail1Activity.this, "LongClick position=" + position + " data=" + testData, Toast.LENGTH_SHORT).show();
}
});
}
mAdapter.setOnChildClickListener(android.R.id.text1, this);
mAdapter.setOnChildClickListener(R.id.tv_left, this);
mAdapter.setOnChildClickListener(R.id.tv_right, this);
mRecyclerView.setAdapter(mAdapter);
}
@Override
public void onChildClicked(int viewId, View view, Object o, int layoutPosition)
{
switch (viewId)
{
case android.R.id.text1:
Log.e(TAG, "onChildClicked: viewId=" + viewId + " data=" + o + " position=" + layoutPosition);
break;
case R.id.tv_left:
Log.e(TAG, "onChildClicked: viewId=" + viewId + " data=" + o + " position=" + layoutPosition);
break;
case R.id.tv_right:
Log.e(TAG, "onChildClicked: viewId=" + viewId + " data=" + o + " position=" + layoutPosition);
break;
}
}
}
https://gitee.com/xiyangyang8110/RecyclerViewAdapter
边栏推荐
- Pandora IOT development board learning (HAL Library) - Experiment 2 buzzer experiment (learning notes)
- 《动手学深度学习》(二)-- 多层感知机
- Fourier series
- Opencv learning example code 3.2.4 LUT
- go 分支与循环
- Visual slam Lecture 3 -- Lie groups and Lie Algebras
- 向数据库中存入数组数据,代码出错怎么解决
- 蓝桥杯单片机省赛第七届
- 微信小程序 - 实现获取手机验证码倒计时 60 秒(手机号+验证码登录功能)
- Fingertips life Chapter 4 modules and packages
猜你喜欢
Www2022 | know your way back: self training method of graph neural network under distribution and migration
0基础如何学习自动化测试?按照这7步一步一步来学习就成功了
[ibdfe] matlab simulation of frequency domain equalization based on ibdfe
[source code analysis] NVIDIA hugectr, GPU version parameter server - (1)
蓝湖的安装及使用
[personnel density detection] matlab simulation of personnel density detection based on morphological processing and GRNN network
[personal notes] PHP common functions - custom functions
《西线无战事》我们才刚开始热爱生活,却不得不对一切开炮
MySQL advanced SQL statement 2
Which is better, industrial intelligent gateway or edge computing gateway? How to choose the right one?
随机推荐
潘多拉 IOT 开发板学习(RT-Thread)—— 实验1 LED 闪烁实验(学习笔记)
手撕——排序
【IBDFE】基于IBDFE的频域均衡matlab仿真
Li Kou interview question 02.08 Loop detection
【leetcode】81. Search rotation sort array II
Go function
Didi open source Delta: AI developers can easily train natural language models
【leetcode】74. Search 2D matrix
Yyds dry inventory compiler and compiler tools
The first game of the 11th provincial single chip microcomputer competition of the Blue Bridge Cup
Recently, the weather has been extremely hot, so collect the weather data of Beijing, Shanghai, Guangzhou and Shenzhen last year, and make a visual map
Document declaration and character encoding
Pandora IOT development board learning (HAL Library) - Experiment 2 buzzer experiment (learning notes)
The 8th Blue Bridge Cup single chip microcomputer provincial competition
Homework in Chapter 3 of slam course of dark blue vision -- derivative application of T6 common functions
C language: examples of logical operation and judgment selection structure
Wechat applet - realize the countdown of 60 seconds to obtain the mobile verification code (mobile number + verification code login function)
Visual slam Lecture 3 -- Lie groups and Lie Algebras
MySQL advanced SQL statement 2
《西线无战事》我们才刚开始热爱生活,却不得不对一切开炮