AMIO编辑器开发(六):使用用适配器模式后,编辑文本区域和行号显示基本完成
class Screen{ private : LinearLayout screenView; // child views DebugView debugView; LineNumViewAdapter lineNumViewAdapter;// 适配器 LineNumView lineNumView; CodeFoldView codeFoldView; EditViewAdapter editViewAdapter;// 适配器 EditView editView; ... }
其中一个适配器的设置示例:
// init adapter for line number view // window size change will NOT trigger lineCount change, so just init at create window. visibleLineCount = lineNumView.getHeight()/lineNumView.getCharHeight() +1; lineNumViewAdapter.lineCount = (visibleLineCount < lineCount) ? visibleLineCount : lineCount; lineNumView.setAdapter(&lineNumViewAdapter);
看看目前的显示效果:
解决:
1、行号的显示是(visibleLineCount<fileTotalLineCount):visibleLineCount:fileTotalLineCount,即与文本区域一样,使用短路算法。
2、行号自动计算最大行号宽度,即文件总行数越大,行号区域的宽度也越大。
未解决:
1、等宽字符的BUG:为了简便(AIMO编辑器思想不是让程序员多写代码,而是编码自动化+设计自动化,这个等完成到80%才看得出效果),所以首个版本是只支持等宽字符的,现在无论是行号显示还是文本区域,都没有显示等宽字符。
2、界面上的滚动条没有绑定数据。
3、鼠标、键盘等输入,光标的显示还未实现