8
votes

Comment définir la largeur / la hauteur pour tout widget via le thème dans Android

J'ai besoin d'utiliser les mêmes widgets (boutons, éditxt, textviews) avec les mêmes propriétés telles que la largeur, la hauteur, la textcolor, la taille, etc. dans plusieurs écrans (XMLS). Donc, j'ai créé des styles pour des widgets individuels (un style pour le bouton, un pour édition de texte ...) et j'ai défini tous ces styles dans ma personnalité.

Mon problème est p>

si je définis la largeur de la mise en page / Hauteur également dans les styles et simplement donner style = "@ style / mybuttonstyle" pour le bouton de XML fonctionne bien, même si je n'ai pas mentionné la largeur / la hauteur en XML (peut être héritée du style). p>

Si je donne la largeur / la hauteur en XML sans le processeur de style et simplement donner mon thème personnalisé à l'activité consiste à apporter tous les styles que j'ai spécifiés dans le thème. Mais je n'ai pas mentionné la largeur / la hauteur en XML, il augmente une exception indiquant que vous avez spécifié la largeur / hauteur de mise en page, que j'ai déjà spécifiée dans le style lui-même. P>

Mon fichier thème est p> xxx pré>

et mon style de bouton222 est p>

                          <Button   android:layout_width="180dip"
                android:layout_height="wrap_content"
                android:text="This is large text."
                />

            <Button
                android:layout_height="wrap_content"
                android:text="This is regular text one"
                />

            <Button
                style="@style/button222"
                android:layout_height="wrap_content"
                android:text="This is regular text."
                />


0 commentaires

3 Réponses :


0
votes

Vous ne savez pas quel est votre objectif: est-il important pour vous d'éviter de devoir mentionner layout_width et layout_height dans le fichier layout.xml ou êtes-vous à la recherche de Toute façon d'utiliser les valeurs du thème sans se référer à un style individuel?

Dans ce dernier cas, la solution serait xxx

où dans votre personnalité que vous avez définie. Un attribut myCustomWidth .


2 commentaires

Tx @ marc1s. Je voudrais éviter layout_width et layout_height dans le fichier layout.xml.


Oui et la raison serait de disposer de tout le bouton, des champs de texte ou de la définition whatevers dans la définition de style plutôt que de la partie de celui-ci et de se séparer dans certaines valeurs.



10
votes

Vous devez insérer une valeur de dimension dans le style XML: xxx

alors vous devez simplement référence à la valeur de la dimension. Donc, dans votre fichier de mise en page, vous écrirez: xxx


1 commentaires

Vous devez donc toujours écrire Android: layout_height = "@ dimen / boutonight" pour chaque bouton? Comment cela raccourcit-il?



1
votes

Il suffit de faire référence au style via l'application Theme et cette erreur disparaîtra. Faites-le comme:

style="@style/Theme.blue"


0 commentaires