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、鼠标、键盘等输入,光标的显示还未实现

posted on 2012-04-30 11:30  aimo  阅读(276)  评论(0编辑  收藏  举报