如果不在edittext中添加侦听器,它会自动允许EditText中的多行,但由于edittext附加了与键处理程序相关的任何侦听器(例如KeyListener或OnEditorActionListener),因此这些侦听器会阻止edittext拥有多行并且无法移动无论我输入,都到下一行,
这是我的代码
<EditText
android:id="@+id/editArticleContentForUpload"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="8"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:background="@android:color/transparent"
android:gravity="top|left"
android:scrollbars="vertical"
android:hint="Writing ! "
android:inputType="textMultiLine"
android:singleLine="false" />
这是我的java代码
OnEditorActionListener
editArticleContent.addTextChangedListener(new ArticleWatcher());
editArticleContent.setImeActionLabel("Writing", KeyEvent.KEYCODE_ENTER);//
editArticleContent.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
Log.d("INFO", "KEY CODE : "+event.getKeyCode());
Log.d("INFO", "ACTION ID : "+actionId);
Log.d("INFO", "VIEW : "+v.getText().toString());
v.setInputType(InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE);
return true;
}
});
以及KeyListener
class WritingEditKeyListener implements KeyListener{
@Override
public int getInputType() {
return InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE;
}
@Override
public boolean onKeyDown(View view, Editable text, int keyCode, KeyEvent event) {
if(event.getKeyCode() == event.KEYCODE_ENTER){
Utilities.showToast(getApplicationContext(), "Hooray! ", 1000);
}
return false;
}
@Override
public boolean onKeyUp(View view, Editable text, int keyCode, KeyEvent event) {
return false;
}
@Override
public boolean onKeyOther(View view, Editable text, KeyEvent event) {
return false;
}
@Override
public void clearMetaKeyState(View view, Editable content, int states) {
}
}
提前谢谢你:)
答案 0 :(得分:0)
我假设你想要的是当你试图在editText
内写字时点击输入时能够转到下一行。
请试试这个
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:lineSpacingMultiplier="1"
android:maxLines="10" />
在此edittext
我可以按Enter进入下一行,虽然它现在不包含任何滚动条,您可以根据布局中的要求对其进行编辑