注册

二维的RecyclerView控件:excelPanel

excelPanel

提供一个二维的RecyclerView控件。

效果如下:

c06c2f99d104ec4cf639b208056ea0c7.gif

导入到项目中

compile 'cn.zhouchaoyuan:excelpanel:1.0.5'


使用


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" />

配置app属性


app:left_cell_width //left header cell's width, not support wrap_content
app:normal_cell_width //container cell's width, not support wrap_content
app:top_cell_height //top header cell's height, not support wrap_content


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添加了多少数据。

Github地址:https://github.com/zhouchaoyuan/excelPanel

下载地址:excelPanel-master.zip

0 个评论

要回复文章请先登录注册