【问题标题】:Android EditText not expanding when hitting enter回车时Android EditText不扩展
【发布时间】:2014-05-15 07:27:15
【问题描述】:

我的布局 xml 中有一个像这样的 EditText,当用户按 Enter 键时它没有展开

<EditText 
        android:layout_height="40dp"
        android:layout_width="fill_parent"
        android:gravity="top"
        android:maxLines="10"
        android:minHeight="40dp"
        android:id="@+id/edSearch"
        android:layout_toLeftOf="@+id/btnSearch"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:hint="City..."
        />

但是当我将android:layout_height="40dp" 更改为android:layout_height="wrap_content" 时,edittext 能够在用户按回车时展开。

如何在保持android:layout_height="40dp" 这一行的同时保持EditText 的扩展

谢谢

【问题讨论】:

    标签: android xml android-edittext


    【解决方案1】:

    试试这个

    <EditText 
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:gravity="Top"
            android:maxLines="10"
            android:minHeight="40dp"
            android:id="@+id/edSearch"
            android:layout_toLeftOf="@+id/btnSearch"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            android:inputType="textMultiLine"
            android:hint="City..."
            />
    

    希望这会奏效

    【讨论】:

    • 您应该为您的答案添加一些解释(将来也可以!)以避免它们被标记为删除!
    • 先生,我猜您没有阅读我的问题。当我使用 wrap_content 但无法以固定的初始高度 40dp 实现它时,我可以让我的 edittext 扩展...
    • 如果你修复了你的视图高度,你怎么能做到这一点,你已经将它更改为 wrap_content 并将 minHeight 设置为 40 dp 然后它会起作用
    【解决方案2】:

    我正在使用以下代码,它运行良好。设置最小高度而不是将 layout_height 设置为 40dp 将其设置为 wrap_content 并设置 minLines 的属性以实现此目的,如下面的代码示例所示

      <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textMultiLine"
            android:minLines="4"
            android:maxLines="10"
             />
    

    【讨论】:

    • 先生,这绝对有效,但我想要将高度设置为固定 40 dp 而不是 wrap_content
    • 我从您的问题和此评论中了解到的内容您希望以 40dp 的最小高度显示edittext,无论是空的还是填充的,当它填充高度超过 40dp 的文本时,您希望它相应地扩展自己。对于自动扩展,您必须设置 layout_height="wrap_content" 并使用您已经使用的设置最小高度,即 minHeight="40dp" 现在默认情况下它将具有 40dp 高度,并且在填充文本时会扩展。
    • 查看结果将 minHeight 更改为 80dp 或 100dp,因为 40dp 仅等于单行的高度
    • 不幸的是,先生,初始大小仍然看起来 wrap_content 不是 40dp 我使用的完全像您的答案并将 minHeight 保持为 40dp
    • 只需尝试将 minHeight 更改为 140dp,然后您会看到更改,因为实际上 40dp 只是单行的高度,这就是您使用 wrap_content 误解它的原因
    【解决方案3】:

    设置属性android:multiline="true"。 希望这会对你有所帮助。

    【讨论】:

    • 先生,android:multiline="true" 错误未知属性
    • 添加这两个属性:android:inputType="textMultiLine" android:singleLine="false" 希望这对你有用。
    【解决方案4】:

    设置android:multiline="true"android:gravity="left|top"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-27
      • 2020-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多