gpt4 book ai didi

Android EditText Multiline 无法正常工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:48:08 25 4
gpt4 key购买 nike

我对这个功能非常失望。我尝试了几乎所有可以找到的东西来启用这些 EditTexts 多行,但他们只是继续在一行上滚动整个 EditText。

停在 EditText 边框的末尾并移动到下一行有多难?

我有一个带有 EditText 和 2 个按钮的 Activity 。这些按钮之一将预定的文本行添加到 EditText。另一个将 EditText 的文本放入我稍后在应用程序中使用的某种形式的对象中。

但是我无法使用此多行功能。我已经尝试限制大小。设置多行标志。禁用单线。给 lines 和 minLines 一个随机数 (10)。禁用 EditText 上的水平滚动。但是没有任何效果....

谁能告诉我到底哪里做错了?以及如何解决 EditText 的这种可怕的可憎问题。

这就是我现在的噩梦。

    <EditText
android:id="@+id/callofedittext"
android:layout_width="wrap_content"
android:inputType="textMultiLine"
android:width="300dp"
android:minLines="10"
android:layout_height="wrap_content"
android:gravity="top|left"
android:textColor="@color/textWhite"
android:background="@color/textBlack"
android:paddingLeft="3dp"
android:singleLine="false"
android:scrollHorizontally="false"

>

<requestFocus />
</EditText>

它萦绕在我的梦中......

编辑:> 隧道尽头的光。

虽然我专注于 xml.. 一个新的干净项目向我指出 EditText textMessage = (EditText)findViewById(R.id.callofedittext); textMessage.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); 导致了我所有的问题。不具体是 xml 中的属性。

最佳答案

从这里comment ,inputType 也在代码中设置为:

textMessage.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE |
InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);

这实际上是不正确的,因为 TYPE_TEXT_FLAG_MULTI_LINETYPE_TEXT_FLAG_CAP_SENTENCES 只是标志,并不包含实际的输入类型。为了让它们起作用,它们必须作为标记分层放置在 InputType.TYPE_CLASS_TEXT 之上。如果没有此类型类标志,编辑文本就没有可应用您的标志的基本输入类型类,并且默认为没有指定的输入类型。

因此,使用这两个标志设置输入类型的正确方法是:

textMessage.setInputType(InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_FLAG_MULTI_LINE |
InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);

有关这些标志如何工作的官方详细信息,请参阅 InputType 上的 Android 开发人员文档和 TextView - android:inputType

我不确定为什么设计决策是这样的。就我个人而言,我认为他们应该隐藏他们如何表示他们的标志(如整数/位标志),而是为他们的公共(public)接口(interface)使用枚举和/或 InputType 的子类。

关于Android EditText Multiline 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25294498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com