我正在尝试以编程方式绘制文本字段。这些字段是动态的,因此大小会根据出现的文本而变化。问题是,虽然我输入了 setMaxLines (3)
,但如果文本有 4 行,则绘制全部四行。我尝试了几种方法
final CustomEditText edit_text = new CustomEditText(activity, idEtiqueta);
edit_text.setLayoutParams(etLparams);
edit_text.setFocusable(true);
edit_text.setFocusableInTouchMode(true);
edit_text.setTextSize(textSize);
edit_text.setHint(ventaArrayList.get(i).getValorDefecto());
edit_text.setTag(ventaArrayList.get(i));
if (tipoCampo.equals(INPUTALFA) || tipoCampo.equals(INPUT))
{
//edit_text.setSingleLine(false);
edit_text.setMaxLines(3);
edit_text.setInputType(InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_FLAG_MULTI_LINE);
}else
edit_text.setSingleLine(true);
edit_text.setText(ventaArrayList.get(i).getValorDefecto());
edit_text.setVisibility(visibilidad);
edit_text.setEnabled(habilitado);
//Escogemos el tipo de teclado según el tipo del campo
if (tipoCampo.equals(INPUT) || tipoCampo.equals(CODIGOBARRAS))
edit_text.setRawInputType(InputType.TYPE_CLASS_NUMBER);
else if (tipoCampo.equals(IMPORTESPRODUCTO))
edit_text.setRawInputType(Configuration.KEYBOARD_12KEY);
结果是带有行的文本字段,而我真正需要的是剪切文本以便只显示 3 行。
最佳答案
如果有任何逻辑,请发布您的 CustomEditText
对象。
如果不是,它被认为是正常 EditText
试试这样:
if (tipoCampo.equals(INPUTALFA) || tipoCampo.equals(INPUT))
{
edit_text.setLines(3); // <-- Use setLines() instaed
edit_text.setInputType(InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_FLAG_MULTI_LINE);
} else
(...)
关于java - Edittext.setmaxLines(3) 以编程方式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57654385/