我有一个在TableLayout中制作的editText,我希望它有5行,但如果我按下输入很多次,它将展开屏幕上的editText框。我无法弄清楚如何让它停下来。
LayoutParams bigedit = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); //width height
bigedit.weight=1;
bigedit.setMargins(10, 0, 0, 10);//Left Top Right Bottom
EditText testEdit1= new EditText(this);
testEdit1.setBackgroundResource(R.drawable.black_rect_border);
testEdit1.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
testEdit1.setLines(5);
testEdit1.setMaxLines(5);
testEdit1.setVerticalScrollBarEnabled(true);
testEdit1.setId(unusedid);
testEdit1.setSingleLine(false);
testEdit1.setGravity(Gravity.TOP|Gravity.LEFT);
unusedid++;
testEdit1.setTextSize(16);
testEdit1.setLayoutParams(bigedit);
row1.addView(testEdit1);
tl.addView(row1);
其中tl是活动中的TableLayout。
答案 0 :(得分:0)
请参阅this question的一个答案中提供的代码,这可能对您有所帮助。
答案 1 :(得分:0)
只是猜测,但根据setSingleLine
文档.-
setSingleLine(boolean singleLine)如果为true,则设置此属性 字段(行,水平滚动,转换方法) 单线输入;如果为false,则将这些恢复为默认值 条件。
这一行.-
testEdit1.setSingleLine(false);
可能会覆盖您的maxLines
设置。无论如何,只要尝试删除该行,就没有必要了。
答案 2 :(得分:0)
嗯,我让它工作(垂直滚动条除外),奇怪的是改变了这些陈述的顺序。
EditText testEdit1= new EditText(this);
testEdit1.setVerticalScrollBarEnabled(true);
testEdit1.setBackgroundResource(R.drawable.black_rect_border);
testEdit1.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
testEdit1.setLines(5);
testEdit1.setSingleLine(false);
testEdit1.setMaxLines(5);
testEdit1.setGravity(Gravity.TOP|Gravity.LEFT);
testEdit1.setId(unusedid);
unusedid++;
testEdit1.setTextSize(16);
testEdit1.setLayoutParams(bigedit);
显然,只有将类设置为使用
键入文本时,setinput行才有效testEdit1.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE);