TextInputLayout ne montrant pas EditText truc avant de l'utilisateur de se concentrer sur elle
Je suis aide a récemment publié Android Support À La Conception De La Bibliothèque pour montrer flottant étiquette avec EditTexts. Mais je suis confronté au problème que l'Indicateur sur l'EditText ne s'affiche pas lorsque l'INTERFACE utilisateur est rendu, mais je vois l'Indice après je me concentre sur la EditTexts.
Ma Disposition est comme suit:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:id="@+id/ScrollView01"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin">
<android.support.design.widget.TextInputLayout
android:id="@+id/name_et_textinputlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/activity_vertical_margin">
<EditText
android:id="@+id/FeedBackerNameET"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/feedbackname"
android:inputType="textPersonName|textCapWords" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/email_textinputlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/FeedBackerEmailET"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/feedbackemail"
android:inputType="textEmailAddress" />
</android.support.design.widget.TextInputLayout>
<Spinner
android:id="@+id/SpinnerFeedbackType"
android:layout_width="fill_parent"
android:layout_height="48dp"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:entries="@array/feedbacktypelist"
android:prompt="@string/feedbacktype" />
<android.support.design.widget.TextInputLayout
android:id="@+id/body_textinputlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/EditTextFeedbackBody"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/feedbackbody"
android:inputType="textMultiLine|textCapSentences"
android:lines="5" />
</android.support.design.widget.TextInputLayout>
<CheckBox
android:id="@+id/CheckBoxFeedBackResponse"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:text="@string/feedbackresponse" />
<Button
android:id="@+id/ButtonSendFeedback"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:text="@string/feedbackbutton" />
</LinearLayout>
</ScrollView>
</FrameLayout>
<View
android:layout_width="match_parent"
android:layout_height="5dp"
android:background="@drawable/toolbar_shadow" />
</FrameLayout>
J'ai aussi essayé de mettre le soupçon, pour la TextInputLayout
l'aide de la méthode setHint
mais pas de chance.
mNameTextInputLayout = (TextInputLayout) v.findViewById(R.id.name_et_textinputlayout);
mNameTextInputLayout.setErrorEnabled(true);
mNameTextInputLayout.setHint(feedBackerNameET.getHint());
mEmailTextInputLayout = (TextInputLayout) v.findViewById(R.id.email_textinputlayout);
mEmailTextInputLayout.setErrorEnabled(true);
mEmailTextInputLayout.setHint(feedBackerEmail.getHint());
mBodyTextInputLayout = (TextInputLayout) v.findViewById(R.id.body_textinputlayout);
mBodyTextInputLayout.setErrorEnabled(true);
mBodyTextInputLayout.setHint(feedBackBody.getHint());
- J'ai le même problème. À ma grande surprise, l'exécution de l'application sur 4.1 émulateur a très bien fonctionné, mais sur mon M aperçu activé Nexus TextInputLayout a été défaillante et ne montrant pas l'astuce pour l'embarqué EditText.
- Pouvez-vous vérifier votre indice de couleur, ou d'essayer de changer votre point de vue couleur d'arrière-plan, peut-être qu'ils sont là, mais vous ne pouvez pas le voir à cause de la couleur
- je pense que l'indicateur de couleur ne doit pas être un problème. Cependant je vais essayer d'avoir un coup d'oeil après le changement de la couleur d'arrière-plan.
- Afzal je vous raconte cette suggestion parce que j'ai eu le même problème que vous, et quand j'ai ajouté de fond à la vue, j'ai vu le truc. Je l'utilise à l'intérieur d'un fragment. Je n'ai pas ajouter du code à partir de java, tout ce que je fait, c'est à partir de xml
- Je vais voir ce problème lorsque je ajouter/supprimer des fragments. Mais si je afficher/masquer les fragments, je ne vois pas ce problème.
- Même problème avec les fragments, Si j'utilise ajouter transaction fonctionne bien lorsque vous revenez. Si j'utilise remplacer transaction lorsque vous revenez, vous ne voyez pas l'astuce
Vous devez vous connecter pour publier un commentaire.
Mise à jour:
C'est un bug qui a été corrigé dans la version 22.2.1 de la bibliothèque.
Réponse Originale À Cette Question:
Comme mentionné par @shkschneider, c'est un bug connu. Github utilisateur @ljubisa987 récemment publié un Résumé pour une solution de contournement:
https://gist.github.com/ljubisa987/e33cd5597da07172c55d
Comme indiqué dans les commentaires, la solution de contournement ne fonctionne que sur Android Lollipop et plus. Il ne fonctionne pas sur Android M Aperçu.
Qui est un bug connu de l'Android de la bibliothèque de Conception. Il a été accepté et attribué.
De sorte que vous devrait être résolu dans la prochaine Android bibliothèque de Conception de presse.
En attendant, vous pouvez regarder le problème de tracker pour un hacky-fix qui pourrait entrer posté là-bas, mais je ne sais pas tout dès maintenant.
Et oui, il n'affectent Sucette et au-dessus.
Cela fonctionne pour moi, dans la Bibliothèque de Conception 23.1.1:
Définir l'indice de la couleur dans les attributs xml de TextInputLayout:
Ce problème est résolu dans la version 22.2.1
vous devez utiliser
android.support.v7.widget.AppCompatEditText
commeEditText
et définirandroid:hint
comme ci-dessousUtiliser ce bout de code.Assurez-vous que votre activité est AppCompatActivity.
Et de la dépendance sont également avec les dernières versions
Mise à jour de l'android studio à la dernière version.
voyez le résultat ici
Si vous êtes à la configuration de votre EditText soupçon par programmation, ça ne marcherait pas!
Vous devez définir l'indicateur sur la TextInputLayout de soi.
Voici le XML dans le cas où vous vous demandez:
Ce problème est résolu dans
v23.0.1
de soutien de la bibliothèque de conception. J'ai aussi mis à jour monappcompat-v7
à23.0.1
,compileSdkVersion
à23
&buildToolsVersion
à23.0.1
dans construire.gradle.J'ai résolu mon problème avec ce code:
La clé ici est la
bringToFront
. Il force leTextInputLayout
refaire son dessin, qui n'est pas le même que le fait de faireinvalidate()
. Si vous essayez d'afficher leTextInputLayout
sur unview
qui aanimations
outranistions
, vous devez exécuter le code ci-dessus à la fin de laanimation
outransition
. Assurez-vous que le code ci-dessus s'exécute sur l'INTERFACE utilisateurthread
.Ressemble à ce problème apparaît lorsque vous définissez onFousListener sur EditText - essayez d'étendre EditText et prendre en charge plusieurs onFocusListeners
Ensemble indicateur de couleur qui contraste avec le EditText arrière-plan.
<item name="android:textColorHint">#FF424242</item>
Liés à:
setHintTextColor() dans l'EditText
Changement EditText soupçon de couleur lors de l'utilisation de TextInputLayout
Comment faire pour modifier le flottant de couleur d'étiquette de TextInputLayout
Problème résolu:
Goto construire.gradle d'ur application et de la vérification de conception de la bibliothèque.
compiler 'com.android.support:design:22.2.1'
Il devrait être 22.2.1 ou plus récent.
J'ai trouvé quelque chose de différent.
Lors de la définition du style pour le fragment,
f1.setStyle(DialogFragment.STYLE_NO_FRAME,android.R.style.Theme_DeviceDefault_Light);
Le bug a disparu quand j'ai essayé différents Styles que "Theme_DeviceDefault_Dialog".
Lui donner un essai.
Problème, c'est le soupçon de couleur. Elle devient blanc lorsque vous tapez quelque chose. S'il vous plaît changer l'indicateur de couleur ou de modifier la couleur d'arrière-plan. Vous verrez l'indicateur lors de la frappe.
Il y a une solution simple à ce que cela a fonctionné pour moi
Juste ajouter android:thème="@style/Base.TextAppearance.AppCompat" à la TextEditLayout et il doit travailler et vous pouvez changer le thème que vous avez besoin.
Juste ajouter:
android:hint="your_hint"
pourTextInputLayout
.