对于将填充 RTL 文本的 EditText,有没有办法改变错误可绘制(当然还有弹出)的严重性?
这是常规错误可绘制的示例
因此,由于输入的文本是 RTL,我希望弹出窗口显示在 EditText 的左侧
我试图应用自定义 drawable ,但Drawable似乎没有任何 setGravity 方法。
提前致谢。
对于将填充 RTL 文本的 EditText,有没有办法改变错误可绘制(当然还有弹出)的严重性?
这是常规错误可绘制的示例
因此,由于输入的文本是 RTL,我希望弹出窗口显示在 EditText 的左侧
我试图应用自定义 drawable ,但Drawable似乎没有任何 setGravity 方法。
提前致谢。
这是不可能的,但您可以扩展 Android TextView 类并更改 Android 用来填充弹出窗口的布局。我自己没有尝试过,但它可以工作。
我快速浏览了 TextView的源代码并找到了这一行
final TextView err = (TextView) inflater.inflate(com.android.internal.R.layout.textview_hint,
null);
对此布局的引用。
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/popup_inline_error"
android:textAppearance="?android:attr/textAppearanceSmallInverse"
/>
在这里增加重力可以解决问题。可适用于可绘制对象的类似方法。
已经一年多了,但如果它对其他人有帮助,您可以使用:
myEdit.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_error, 0, 0, 0);
但它会一直存在,直到你删除它
myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);