RTLテキストで埋められるEditTextの場合、エラードローアブル(およびもちろんポップアップ)の重力を変更する方法はありますか?
これが通常のエラードローアブルの例です
入力したテキストはRTLなので、EditTextの左側にポップアップを表示したいと思います。
カスタムドローアブルを適用しようとしましたが、ドローアブルにはsetGravityメソッドがないようです。
前もって感謝します。
RTLテキストで埋められるEditTextの場合、エラードローアブル(およびもちろんポップアップ)の重力を変更する方法はありますか?
これが通常のエラードローアブルの例です
入力したテキストはRTLなので、EditTextの左側にポップアップを表示したいと思います。
カスタムドローアブルを適用しようとしましたが、ドローアブルには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"
/>
ここに重力を追加すると、うまくいく可能性があります。ドローアブルにも同様のアプローチを適用できます。
それは1年以上ですが、それが他の誰かを助けるなら、あなたは使うことができます:
myEdit.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_error, 0, 0, 0);
しかし、あなたがそれを取り除くまでそれはとどまります
myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);