当前位置: 代码迷 >> Android >> EditText控件多行有关问题
  详细解决方案

EditText控件多行有关问题

热度:48   发布时间:2016-05-01 21:51:28.0
EditText控件多行问题
问题: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会让显示成几行,这样你就可以获取到可以显示成几行
  相关解决方案