一个二维RecyclerView。不仅可以加载历史数据,而且可以加载未来数据。
包括在您的项目中
compile 'cn.zhouchaoyuan:excelpanel:1.0.1'
用法
1,写入xml
<cn.zhouchaoyuan.excelpanel.ExcelPanel android:id="@+id/content_container" android:layout_width="match_parent" android:layout_height="wrap_content" app:left_cell_width="@dimen/room_status_cell_length" app:normal_cell_width="@dimen/room_status_cell_length" app:top_cell_height="@dimen/room_status_cell_length" />
使用xml属性进行配置
app:left_cell_width // left标头单元格的宽度 app:normal_cell_width //容器单元格的宽度,height不是必须的,因为行的高度将等于该行中最大单元格的高度 app:top_cell_height //顶部标题单元格的高度
2,定义您的自定义适配器
您的适配器必须扩展BaseExcelPanelAdapter并覆盖七种方法如下所示:
public class Adapter extends BaseExcelPanelAdapter<RowTitle, ColTitle, Cell>{ public Adapter(Context context) { super(context); } //=========================================normal cell========================================= @Override public RecyclerView.ViewHolder onCreateCellViewHolder(ViewGroup parent, int viewType) { return null; } @Override public void onBindCellViewHolder(RecyclerView.ViewHolder holder, int verticalPosition, int horizontalPosition) { } //=========================================top cell=========================================== @Override public RecyclerView.ViewHolder onCreateTopViewHolder(ViewGroup parent, int viewType) { return null; } @Override public void onBindTopViewHolder(RecyclerView.ViewHolder holder, int position) { } //=========================================left cell=========================================== @Override public RecyclerView.ViewHolder onCreateLeftViewHolder(ViewGroup parent, int viewType) { return null; } @Override public void onBindLeftViewHolder(RecyclerView.ViewHolder holder, int position) { } //=========================================top left cell======================================= @Override public View onCreateTopLeftView() { return null; } }
3,使用适配器
//============================== private List<RowTitle> rowTitles; private List<ColTitle> colTitles; private List<List<Cell>> cells; private ExcelPanel excelPanel; private CustomAdapter adapter; private View.OnClickListener blockListener //.......................................... excelPanel = (ExcelPanel) findViewById(R.id.content_container); adapter = new CustomAdapter(this, blockListener); excelPanel.setAdapter(adapter); excelPanel.setOnLoadMoreListener(this);//your Activity or Fragment implement ExcelPanel.OnLoadMoreListener adapter.setAllData(colTitles, rowTitles, cells); adapter.enableFooter();//load more, you can also call disableFooter()----default adapter.enableHeader();//load history, you can also call disableHeader()----default
如果使用setOnLoadMoreListener(...)和enableHeader(),你必须调用addHistorySize(int)告诉ExcelPanel已经添加了多少数据。
资源均来自第三方,谨慎下载,前往第三方网站下载