原理描述:
想写来着,但是似乎描述不太清楚。效果图来着,没找到好的视频录制软件,直接上代码吧。
代码:
1、xml布局文件
自定义控件的包名删除了部分,需要重新导入自定义控件!!!
2、activity界面
public class ExcelActivity extends AppCompatActivity {
/**
* Excel上方的表格
*/
private LinearLayout llTitleContainer;
private NoscrollListView mLeft;
private LeftAdapter mLeftAdapter;
private NoscrollListView mData;
private DataAdapter mDataAdapter;
private SyncHorizontalScrollView mHeaderHorizontal;
private SyncHorizontalScrollView mDataHorizontal;
/**
* excel的列表的数据
*/
private ListmLeftListData;
/**
* 最上面的标题的集合
*/
private Listtitles;
/**
* 标题下方的内容的集合
*/
private Listcontents;
private ListcontentViews;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.selfview_excel);
initView();
}
private void initView() {
mLeft = (NoscrollListView) findViewById(R.id.lv_left);
mData = (NoscrollListView) findViewById(R.id.lv_data);
mDataHorizontal = (SyncHorizontalScrollView) findViewById(R.id.data_horizontal);
mHeaderHorizontal = (SyncHorizontalScrollView) findViewById(R.id.header_horizontal);
mDataHorizontal.setScrollView(mHeaderHorizontal);
mHeaderHorizontal.setScrollView(mDataHorizontal);
llTitleContainer = findViewById(R.id.ll_excel_title_container);
ThreadPoolProxyFactory.getNormalThreadPoolProxy().submit(new Runnable() {
@Override
public void run() {
//设置标题,与下方的contents的长度要一致
titles = new ArrayList<>();
for (int i = 0; i < 6;