只想问你是否可以做到
android:inputType="textMultiLine" & android:maxLines="5"
提示
android:maxLines="1"
由于尺寸较小
由于本地化,文本可能会更长。
谢谢:)
答案 0 :(得分:0)
是的,但可能是作弊。
首先,将maxLine设置为1.想法是在提示消失时将maxLine设置为5。使用setOnFocusChangeListener
设置setOnFocusChangeListener
喜欢它:
EditText ed = (EditText)findViewById(R.id.MY_EDIT_TEXT);
ed.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean isFocused) {
if (isFocused)
((EditText)view).setMaxLines(5);
else
((EditText)view).setMaxLines(1);
}
});
祝你好运
修改强>
我认为当焦点在它上面时,提示会消失,但只有在添加文本时,提示才会消失。
解决此问题的新解决方案是在EditText的包含上添加一个侦听器。坏点(如果是)是你必须使你的EditText最终。
final EditText ed = (EditText)findViewById(R.id.MY_EDIT_TEXT);
ed.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (count == 0)
ed.setMaxLines(1);
else
ed.setMaxLines(5);
}
@Override
public void afterTextChanged(Editable s) {
}
});
答案 1 :(得分:0)
@ClémentChameyrat是一个很好的答案,您可以通过检查editeText的文本是否为空来改进他的第一个答案。 如果显示提示,则getText()不会返回anythig,因此请在代码中使用此事实以确定何时显示提示 :
EditText ed = (EditText)findViewById(R.id.MY_EDIT_TEXT);
ed.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean isFocused) {
String text = ((EditText)view).getText().toString();
if (isFocused && !text.equals(''))
((EditText)view).setMaxLines(5);
else if (!isFocused && text.equals(''))
((EditText)view).setMaxLines(1);
}
});