是否有一种方法可以强制TextInputLayout错误消息使用一行?
我尝试将app:errorTextPapearance=“@style/error_apperation”
放置在TextInputLayout上,其error_apperation样式包含:
<item name="android:maxLines">1</item>
<item name="android:ellipsize">end</item>
<item name="android:inputType">text</item>
但它不起作用。然而,改变颜色是有效的。我不明白,mErrorView只是一个文本视图,它应该可以工作。
错误是TextView
,但是TextExperience
样式只影响文本,而不影响文本所在的视图
。maxlines
和ellipsize
属性属于textview
,因此在textappine
样式中会忽略它们,该样式需要textcolor
、textsize
、typeface
等属性。1
了解了这一点,我们只需要找到一种方法,在errortextview
上设置这些属性的值。对于当前版本的TextInputLayout
.2,Kjurkovic对这个问题的回答展示了如何在代码中实现这一点。
这个错误TextView
是用TextInputLayout
的上下文
实例化的,我们实际上可以在布局XML中用Android:theme
属性在某种程度上修改它。使用此属性的覆盖,我们可以使context
的主题具有Android:TextViewStyle
-本质上是TextView
s的基本设置-其中包含我们所需的属性值。
在主题/样式资源XML中:
<style name="ThemeOverlay.TextInputLayout.TextView" parent="">
<item name="android:textViewStyle">@style/Widget.TextView.SingleLineEllipsized</item>
</style>
<style name="Widget.TextView.SingleLineEllipsized" parent="">
<item name="android:maxLines">1</item>
<item name="android:ellipsize">end</item>
</style>
在布局XML的
上,只需添加Android:theme
属性:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/text_input_layout_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Phone number"
android:theme="@style/ThemeOverlay.TextInputLayout.TextView">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_text_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
尽管当前的TextInputLayout
与原始的设计细节不同,但我们可以看到MaxLines
和EllipSize
设置已经起作用:
如果其中任何一个是不需要的,那么Kjurkovic的findviewbyid()
演示应该使用所有这些textview
,3,尽管您必须确保首先设置相应的文本,因为textview
是按需实例化的。
1您可以在平台的res/values/attrs.xml
资源文件中找到有效的TextExperience
属性的完整列表。我不相信有任何文档或开发人员页面涵盖它;至少以前没有。
2TextInputLayout
的第一个版本没有为内部TextView
分配ID,因此直接引用错误TextView
需要反射,或者笨拙地搜索内部层次结构。我没有在这些古老版本上测试过主题覆盖解决方案,但如果出于任何原因,您坚持使用主题覆盖解决方案,而这不起作用,此答案的以前修订版本为您提供了其他选项。
3顺便提一下,所有这些代码的ID如下:r.id.textinput_error
、r.id.textinput_helper_text
、r.id.textinput_counter
、r.id.textinput_prefix_text
、r.id.textinput_suffix_text
.
它通常表现为红色,我想改变它。我应该在文件中使用哪些项名/键来确定颜色目标? 提前谢了。 编辑: 当出现错误消息时,字段上方的提示将变为与错误消息相同的颜色,覆盖提示颜色--这是经过设计的。
在本章中,我们将讨论在使用SLF4J时获得的各种错误消息或警告以及这些消息的原因/含义。 无法加载类“org.slf4j.impl.StaticLoggerBinder”。 这是在类路径中没有提供SLF4J绑定时引起的警告。 以下是完整的警告 - 要解决此问题,需要添加任一日志框架绑定。本教程上一小节对此进行了解释说明。 注 - 这种情况发生在SLF4J的版本中,介于1.6.0和1.8.0-bet
问题内容: 这是我的代码片段: 这应该给我一个错误,因为这些表甚至不存在。但是我得到的是: 数组([0] => 00000) 如何获得对该错误的更好描述,以便可以调试问题? 问题答案: 尝试以下方法: 在准备之前添加以下内容: 这将更改PDO错误报告类型,并在出现PDO错误时使其发出警告。尽管应该设置您的errorInfo,但它应该可以帮助您进行跟踪。
我正在使用Eclipse将json隐藏到Java中的字符串中。但我一直收到: 有人能告诉我json有什么问题吗?我如何改变它使其有效?我对java和json相当陌生,如果我错过了任何应该包括的细节,我很抱歉。
我有一个EditText包含在TextInputLayout中。我希望在EditText下显示错误,但要对齐到屏幕的右端。 我的XML是: 我在使用数据绑定。
这个问题已经问了好几次了,我跟着这些问题试图解决这个问题。该项目成功构建并运行了几个小时前我关闭了电脑。这个问题让我抓狂,请帮助。 留言: build.gradle: 请帮忙。