问题:EditText控件:需要多行,且每行都有分割线隔离开,怎么办??
先说说我自己的做法:
1、用底图的方法,可是这样有一个问题没有解决:滚动时,底图的分割线是不跟随字体移动的
2、重写控件,加下划线模式,也有问题没有解决:下划线只有文字存在时,才存在下划线,没有文字,就仅有一行了;再者,下划线跟字体贴得太近了,不美观
寻求解决方法,谢谢了
------解决方案--------------------
重写onDraw方法。直接在EditText中画线,应该可以实现
------解决方案--------------------
我给你一段代码
- Java code
public static class LinedEditText extends EditText { private Rect mRect; private Paint mPaint; // we need this constructor for LayoutInflater public LinedEditText(Context context, AttributeSet attrs) { super(context, attrs); mRect = new Rect(); mPaint = new Paint(); mPaint.setStyle(Paint.Style.STROKE); mPaint.setColor(0x800000FF); } @Override protected void onDraw(Canvas canvas) { int count = getLineCount(); Rect r = mRect; Paint paint = mPaint; for (int i = 0; i < count; i++) { int baseline = getLineBounds(i, r); // 这里画的是一条水平线 canvas.drawLine(r.left, baseline + 1, r.right, baseline + 1, paint); } super.onDraw(canvas); } }
------解决方案--------------------
补充下楼上的,int count = getLineCount();
这个是获取行数
比如说你使用这个自定义控件setText();android会让显示成几行,这样你就可以获取到可以显示成几行