【问题标题】:Change EditText setError drawable gravity更改 EditText setError 可绘制重力
【发布时间】:2013-03-02 11:12:35
【问题描述】:

对于将填充 RTL 文本的 EditText,有没有办法改变错误可绘制(当然还有弹出)的严重性?

这里是一个常规错误drawable的例子

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

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

提前致谢。

【问题讨论】:

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


    【解决方案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"
    />
    

    在这里添加重力可以解决问题。可适用于可绘制对象的类似方法。

    【讨论】:

      【解决方案2】:

      一年多了,但如果对别人有帮助,你可以使用:

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

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

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

      【讨论】:

      • 问题不在于以编程方式设置可绘制对象,而在于更改可绘制对象的重力。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 2016-04-11
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多