【发布时间】:2022-01-03 22:52:12
【问题描述】:
我正在尝试在 android 应用程序中实现材料文本字段 (https://material.io/components/text-fields) 的使用。
我目前一直在尝试为电子邮件的正文实现此功能。它需要是它的 LinearLayout 的高度和宽度,以便它显示在各种屏幕尺寸上。
我需要解决的问题是,输入的任何文本都被强制放到 TextEdit 垂直中心的一行上,而不是顶部。我不能让它的高度以单行开头,因为我希望用户能够通过单击隐含消息正文区域中大于单行的任何位置来输入它。
首先,我似乎无法让 multiLine 功能像通常描述的那样工作。但是,即使可以,我也需要根据可用于填充的空间(取决于屏幕大小)而不是任意行数来设置它的大小。也许我误解了它是如何工作的?
其次,material.io 引用了一个名为 TextArea 的 inputType,它在其他任何地方都没有被引用,甚至谷歌也没有帮助发现它。为什么这么隐秘? (https://material.io/components/text-fields#input-types) 这是一个可能的解决方案还是只是一个红鲱鱼?
代码在下面提供,我已经在谷歌上搜索了一堆,如果有些东西是多余的或格式奇怪,我很抱歉,但我很感激任何建议让它发挥作用或帮助我理解我我做错了。
通用文本编辑版本:
<EditText
android:inputType="textMultiLine"
android:singleLine="false"
android:minLines="6"
android:lines="10"
android:maxLines="20"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="Message"/>
materials.io 版本:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/noticeBody"
style="@style/DetailNoticeBodyTextView"
android:padding="10dp"
android:inputType="textMultiLine"
android:hint="Message"
android:gravity="top|left"
android:textCursorDrawable="@null">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</com.google.android.material.textfield.TextInputLayout>
注意:我也尝试过各种混搭版本,例如。 material.io 版本中的 minLines/maxLines 等
【问题讨论】:
标签: android xaml xamarin material-design