excelPanel
二维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已经添加了多少数据。
ChangeLog
- V1.0.1 --------------行i可以不同于行i + 1,但同一行的高度必须等于
资源均来自第三方,谨慎下载,前往第三方网站下载