我有以下问题。 我有一个编辑文本,用户在其中输入电影名称。如果用户按 Enter 键,我希望焦点转到下一个编辑文本,用户在其中键入电影的描述。 我不希望用户能够将电影标题放入两行,即我希望将其全部放在一行上而无需输入。 但是,当我使用 android:singleLine="true" 或 android:maxLines 时,电影标题会打印在一行上,但如果电影标题很长,则不会一次全部显示(必须滚动)。 如果有必要,我希望编辑文本的高度增加到多行,但我不希望用户使用 Enter 来创建新行。 我该怎么做。 这是我的代码:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Movie title"
android:textSize="15sp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="15sp"
android:id="@+id/et_AddMovieTitle"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Movie description"
android:textSize="15sp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="15sp"
android:id="@+id/et_AddMovieDescription"
/>
谢谢你
也许想法是创建您的自定义
editText
,您可以覆盖onKeyDown
方法并检查用户是否按下了Enter键,如果是这样您可以隐藏键盘或其他东西。
class CustomEditTexxt extends EditText
{
...
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode==KeyEvent.KEYCODE_ENTER)
{
// hide the keyboard
return true;
}
// handle all other keys in the default way
return super.onKeyDown(keyCode, event);
}
}
使用
android:inputType="textMultiLine"
&删除
android:imeOptions="actionDone"
尝试一下。
在编辑文本中添加输入类型。
单线
android:inputType="text"
对于多行
android:inputType="textMultiline"
我认为您必须重写 Enter 键功能,以防止用户使用“Enter”在 EditText 中添加一行。您应该能够简单地将焦点更改为此处的下一个 EditText 并覆盖新行逻辑。
我认为这篇文章可能对您有价值。 处理 EditText 中的“Enter”键
我和你有同样的问题,只设置
textMultiLine
是行不通的,添加android:scrollbars="vertical"
并且你想定义一个android:maxHeight="max_size_in_dp"
,如果它溢出用户必须滚动的大小。
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enviar seu comentário"
android:scrollbars="vertical"
android:maxHeight="100dp"
android:inputType="textCapSentences|textMultiLine"/>
editText.setText("big_text_description_here");
文字将按照您想要的方式显示。
过去,我使用
android:imeOptions="actionNext"
强制用户进入下一个输入字段。
您可以检查action文档来验证imeOptions是否是您所需要的。您可能还想查看使用
actionDone
选项,以便在选择最后一个字段时轻松提交表单。
因此,一种快速/便宜的方法是设置为单行
EditText
,并启用“下一步”按钮:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="15sp"
android:imeOptions="actionNext"
android:singleLine="true"
android:id="@+id/et_AddMovieTitle"
/>
然后通过应用以下编程配置强制
EditText
进行软包装:
editText.setHorizontallyScrolling(false);
editText.setMaxLines(Integer.MAX_VALUE);
这对我在 android 5.1 上的测试有用,但不太利于重复使用。所以如果你的需求比较苛刻,也可以考虑子类化
EditText