更改EditText setError drawable gravity

时间:2013-03-02 11:12:35

标签: android android-edittext right-to-left

对于要用RTL文本填充的EditText,有没有办法改变错误drawable的强度(当然还有弹出窗口)?

这是一个常规错误可绘制的例子

error drawable always right

所以由于输入的文字是RTL,我希望弹出窗口显示在EditText的左侧

我尝试应用自定义drawable,但Drawable似乎没有任何setGravity方法。

提前感谢。

2 个答案:

答案 0 :(得分:1)

通过常规手段无法实现,但是您可以扩展Android TextView类并更改Android用于为弹出窗口充气的布局。我自己没试过,但它可以工作。

我快速查看了TextView的source并找到了这一行

final TextView err = (TextView) inflater.inflate(com.android.internal.R.layout.textview_hint,
                   null);

哪些引用this布局。

<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"
/>

在这里增加引力可以解决问题。可以采用类似的可绘制方法。

答案 1 :(得分:-2)

它超过一年,但如果它对其他人有帮助,你可以使用:

myEdit.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_error, 0, 0, 0);

但它会一直存在,直到你删除它

myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);