【问题标题】:How to make Android EditText expand vertically when full如何使Android EditText在满时垂直扩展
【发布时间】:2014-12-30 00:47:12
【问题描述】:

我有这个 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 框在需要更多空间时向上扩展,我更喜欢它?有没有办法做到这一点?谢谢。

【问题讨论】:

    标签: android android-edittext


    【解决方案1】:

    是的,这实际上涉及两件事:

    1. 使EditText 接受多行输入。
    2. 随着添加更多文本行而增加其高度。

    因此,要实现这一点,您需要设置:

    android:inputType="textMultiLine"
    android:layout_height="wrap_content"
    

    (请注意difference between textMultiLine and textImeMultiLine)。

    完整的 XML sn-p 将是:

    <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"/>    
    

    【讨论】:

    • 如果inputTypetextMultilineimeOptions 将被忽略
    【解决方案2】:

    使用这两个标志:textMultiLine 将包装您的输入,textImeMultiLine 将在您的键盘中提供换行键。

     <EditText
        ...
        android:layout_height="wrap_content"
        android:inputType="textImeMultiLine|textMultiLine"
        ... />
    

    【讨论】:

      【解决方案3】:

      在我的例子中,我有多行文本,但它显示了一行和一个键盘:

      虽然我已经设置了android:inputType="textCapSentences|textAutoCorrect|textMultiLine",但它并没有帮助。然后我明白了当键盘出现在DialogFragment时,它会折叠EditText。当DialogFragment 显示时,请参阅DialogFragment and force to show keyboard 以显示键盘。

      然后我在显示键盘之前添加了一个短暂的延迟(100-300 毫秒)。现在我有:

      AndroidManifest 中,我为当前活动设置了android:windowSoftInputMode="adjustResize"

      【讨论】:

        猜你喜欢
        • 2013-10-15
        • 2015-04-24
        • 1970-01-01
        • 2015-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多