Android:如何获得我用Java制作的EditText来停止垂直扩展

时间:2013-10-08 20:09:57

标签: android android-edittext tablelayout android-tablelayout

我有一个在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。

3 个答案:

答案 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);