我有这个EditText
<EditText
android:layout_width="match_parent"
android:layout_height="72dp"
android:hint="@string/write_message"
android:textColorHint="@color/primary_color"
android:ems="10"
android:imeOptions="actionDone"
android:inputType="textImeMultiLine"
android:id="@+id/message_input"
android:layout_gravity="center_horizontal"
android:backgroundTint="@color/primary_color"/>
当框中填满用户输入的文本时,它会向右滚动以腾出更多文字空间,我不喜欢这种行为,如果EditText框在需要更多空间时向上展开,它会更喜欢它吗?有没有办法做到这一点?感谢。
答案 0 :(得分:21)
是的,这实际上涉及两件事:
EditText
接受多行输入。因此,要实现这一目标,您需要设置:
android:inputType="textMultiLine"
android:layout_height="wrap_content"
(请注意difference between textMultiLine
and textImeMultiLine
)。
完整的XML代码段为:
<EditText
android:layout_width="match_parent"
android:inputType="textMultiLine"
android:layout_height="wrap_content"
android:hint="@string/write_message"
android:textColorHint="@color/primary_color"
android:ems="10"
android:imeOptions="actionDone"
android:id="@+id/message_input"
android:layout_gravity="center_horizontal"
android:backgroundTint="@color/primary_color"/>
答案 1 :(得分:0)
同时使用两个标志:textMultiLine
将包装您的输入,而textImeMultiLine
将在键盘中提供一个换行键。
<EditText
...
android:layout_height="wrap_content"
android:inputType="textImeMultiLine|textMultiLine"
... />
答案 2 :(得分:0)
在我的情况下,我有多行文字,但显示了一行和一个键盘:
尽管我已经设置了private async void MouseLeftDown_TwoSideButton(object sender, MouseButtonEventArgs e)
,但并没有帮助。然后我知道,当键盘出现在android:inputType="textCapSentences|textAutoCorrect|textMultiLine"
中时,它会折叠DialogFragment
。显示EditText
时,请参见DialogFragment and force to show keyboard以显示键盘。
然后,在显示键盘之前,我添加了一个较短的延迟(100-300毫秒)。现在我有:
在DialogFragment
中,将AndroidManifest
设置为当前活动。