Désactiver les possibilités d'édition et de focus EditText (comme TextView)
Est-il un moyen de faire EditText
comportements comme TextView
dans Android (XML est de préférence)?
J'ai essayé ce qui suit:
android:editable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:cursorVisible="false"
android:longClickable="false"
Cela fonctionne, mais je ne peux toujours toucher le EditText
pour obtenir le focus (le orange pensionnaire), bien que l'accent perdu dès que je retire mon doigt.
Je ne suis pas sûr de ce que focusableInTouchMode
fait, mais elle ne supprime pas le focus lorsque j'ai garder de toucher.
Et la raison pour laquelle je ne pas utiliser un fond blanc TextView
au lieu de cela, c'est que le TextView
'arrière-plan, c'est moche. EditText
'arrière-plan, des coins arrondis et de l'effet d'ombre.
Merci d'avance.
source d'informationauteur Chris
Vous devez vous connecter pour publier un commentaire.
EditText
etTextView
sont assez similaires. La seule différence que je vois codée en dur dans EditText.java est de définir l'modifiable par défaut à true, vous avez défini manuellement. Autre que cela, leEditText
style est:et
TextView
est:Ma conjecture est que
@android:drawable/edit_text
est la source de l'orange box. En effet, il contient:La façon la plus simple pourrait être de fixer ses arrière-plan par défaut:
android:background="@android:drawable/textfield_default"
Désactiver EditText possibilité de modification et de se concentrer (comme TextView).
Essayez ceci :
Combien de différentes façon et une mauvaise façon(
Utilisez toujours
Maintenant, je reçois une nouvelle façon. Depuis que j'ai désactivé la plupart des fonctions de
EditText
il devrait être mieux de réfléchir à comment à "embellir" le vilain fond blanc deTextView
. Et la réponse est dans le code source:Juste en ajoutant
android:background="@android:drawable/edit_text"
à unTextView
fait les mêmes effets.Merci encore Matthieu.
Vous pouvez utiliser
your_edit_text.setKeyListener(null);
simplement pour le rendre non modifiable..Si vous voulez un
EditText
pas modifiable ou focusable (tout comme unTextView
), mais avec le bon d'arrière-plan, vous pouvez utiliser l'attribut?editTextBackground
sur unTextView
. Si vous utilisez un drawable comme@android:drawable/edit_text
il ne sera pas utiliser un arrière-plan dépend de la version de l'api.Ce:
a les mêmes propriétés de l'INTERFACE utilisateur de cette: