2013-03-02 2 views
7

Per EditText che va riempito con testo RTL, c'è un modo per modificare la gravità dell'errore disegnabile (e popup ovviamente)?Modifica EditText setError drawable gravity

qui è un esempio di errore di regolare drawable

error drawable always right

così dal momento che il testo inserito è RTL Vorrei che il pop-up di presentarsi sul lato sinistro della EditText

ho provato per applicare il drawable personalizzato, ma Drawable sembra non avere alcun metodo setGravity.

grazie in anticipo.

risposta

1

Non è possibile con mezzi normali, tuttavia è possibile estendere la classe Android TextView e modificare il layout utilizzato da Android per gonfiare il popup. Non l'ho provato da solo ma potrebbe funzionare.

ho fatto un rapido sguardo nel source di TextView e trovato questa linea

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

che fa riferimento a this layout.

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

L'aggiunta di gravità qui potrebbe fare il trucco. Potrebbe applicarsi un approccio simile per il drawable.

+0

Qualcuno ha provato questo? – ViliusK

-2

E 'più di un anno, ma se aiuta chiunque altro, è possibile utilizzare:

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

ma rimarrà fino a quando lo si rimuove

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

La domanda non riguardava l'impostazione programmabile del drawable in merito alla modifica della gravità del drawable. –