提问人:Hasnain Ghias 提问时间:6/25/2020 最后编辑:EdricHasnain Ghias 更新时间:6/28/2020 访问量:5116
如何在“TextInputLayout”的右端动态添加可绘制对象?
How to add a drawable at the right end of a "TextInputLayout" dynamically?
问:
我正在尝试制作类似这个示例的东西:
我希望在我从服务器验证用户名时显示可绘制对象。
我正在使用Material Design Text Input Field & EditText。是的,我可以用 simple 和 an 来做到这一点,但我想使用标准元素。EditText
ImageView
我看过官方文档,有一种方法可以使用 XML 在右上角添加图像,但我想以编程方式添加它。
答:
3赞
Mehul Kabaria
6/25/2020
#1
您需要以编程方式设置可绘制对象,如下所示
inputTextEditText.setCompoundDrawablesWithIntrinsicBounds(null, null, ContextCompat.getDrawable(context,R.drawable.drawableRight), null)
评论
0赞
Hasnain Ghias
6/25/2020
谢谢,添加了可绘制对象,但现在文本与左侧图标重叠。这是屏幕截图:ibb.co/5j5N5nZ
0赞
Mehul Kabaria
6/25/2020
为此,您可能需要添加填充,从它开始。
0赞
Hasnain Ghias
6/25/2020
感谢您的帮助,我用“setCompoundDrawablesRelativeWithIntrinsicBounds”修复了它
0赞
Gabriele Mariotti
6/25/2020
@MehulKabaria 这是不正确的。在布局中使用 on != 使用(官方方式)。另请查看官方文档: 注意:您应该选择使用 API,而不是在setCompoundDrawablesWithIntrinsicBounds
TextInputEditText
app:endIconDrawable
EndIconMode
Drawable
TextInputEditText
17赞
Gabriele Mariotti
6/25/2020
#2
使用 setEndIconDrawable
方法:
textInputLayout.setEndIconDrawable(R.drawable.xxxx);
textInputLayout.setEndIconMode(TextInputLayout.END_ICON_CUSTOM);
或在布局中:
<com.google.android.material.textfield.TextInputLayout
app:endIconDrawable="@drawable/xxxxx"
app:endIconMode="custom"
更多信息请见官方文档。
评论