Si de nombreux TextViews servent d'étiquettes d'élément, je pensais pouvoir extraire tout ce qui est commun à leur sujet dans un style et utiliser uniquement la mise en page.
<TextView style="@style/label" Android:text="Foo"/>
<TextView style="@style/label" Android:text="Bar"/>
avec style comme:
<style name="label">
<item name="Android:layout_width">wrap_content</item>
<item name="Android:layout_height">wrap_content</item>
</style>
Mais lorsque je fais cela, cela fonctionne correctement sur l'émulateur et le périphérique, mais l'éditeur XML d'Android se plaint que "<TextView>" does not set the required layout_height attribute.
Y a-t-il une raison pour laquelle il signale cet avertissement?
Avez-vous essayé de nettoyer le projet?
J'utilise également la même chose sur certains fichiers XML pour la largeur et la longueur. Voici un exemple fonctionnant sur mon application, vous pouvez voir:
<TextView
Android:id="@+id/viewdescription"
Android:textIsSelectable="true"
Android:layout_below="@+id/rating_bar_view"
Android:minLines="8"
style="@style/description" />
Et le XML:
<style name="description">
<item name="Android:layout_gravity">center_horizontal</item>
<item name="Android:inputType">textMultiLine</item>
<item name="Android:layout_width">fill_parent</item>
<item name="Android:layout_height">wrap_content</item>
<item name="Android:textSize">14sp</item>
<item name="Android:textColor">@color/Black</item>
<item name="Android:layout_marginRight">8dp</item>
<item name="Android:layout_marginLeft">8dp</item>
Après une tentativeBuild > Clean Project
, je rencontrais toujours le même problème dans l'éditeur de disposition; un redémarrage complet de mon IDE a résolu le problème pour moi.
J'ai essayé cela, ça marche juste bien ..
<EditText
Android:id="@+id/edt_mobile_no"
style="@style/login_input_fields"
Android:hint="@string/hint_mobile"
Android:inputType="phone" />
Ci-dessous le style pour le EditText
<style name="login_input_fields">
<item name="Android:layout_width">match_parent</item>
<item name="Android:layout_height">40dp</item>
<item name="Android:layout_marginBottom">10dp</item>
<item name="Android:background">@drawable/bg_curved_white_border</item>
<item name="Android:paddingRight">10dp</item>
<item name="Android:paddingLeft">10dp</item>
<item name="Android:textColor">@Android:color/white</item>
<item name="Android:textColorHint">@color/underline</item>
<item name="Android:textSize">16sp</item>
<item name="Android:typeface">monospace</item>
</style>
Vieux sujet mais quand même :)
Je ne pense pas que définir une largeur et une hauteur de style soit une bonne idée. Fondamentalement, il compile et fonctionne normalement, mais j’ai connu des situations avec des mises en page plus complexes, y compris, etc., où il posait problème. Et quand on y réfléchit, cela n’a pas vraiment de sens de le mettre là.
Vous pouvez facilement utiliser @dimen si vous voulez différentes valeurs pour différentes dispositions. Et cela peut aussi être assez surprenant pour quelqu'un d'autre qui utilise votre style. Vous souhaitez généralement définir la couleur, la taille et le comportement avec style, mais la taille ne fait pas partie des choses.
Vous ne savez jamais dans quel contexte votre style va être utilisé. C'est juste une de ces choses puantes qui, lorsque vous voyez, vous commencez à avoir le sentiment que quelque chose aurait pu être mieux fait.