Comment utiliser android:maxWidth?
Je veux mettre une largeur maximale d'une zone d'édition. J'ai donc créé cette petite mise en page:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxWidth="150dp" >
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10" />
</LinearLayout>
Mais ça ne fonctionne pas, la boîte peut-être plus de 150 dp de toute façon. android:maxWidth="150dp"
dans le EditText
donnent le même résultat. J'ai lu ( maxWidth ne fonctionne pas avec fill_parent ) ce paramètre à la fois max et min largeur de la même taille devrait résoudre:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:maxWidth="50dp"
android:minWidth="50dp" />
Mais il ne le fait pas.
J'ai trouvé une solution à mon problème ici:
Définition d'une largeur maximale sur une ViewGroup
Et cela fonctionne très bien. Mais je suppose que le maxWidth
attribut est ici pour que j'ai raison. Comment doit-il être utilisé? Ou est-il une documentation sur ce sujet? J'ai passer des heures sur ce problème, et ne comprend toujours pas comment utiliser cet attribut simple.
- astuce:
android:width
est un raccourci pour définir à la foisandroid:maxWidth
etandroid:minWidth
Vous devez vous connecter pour publier un commentaire.
Dans votre exemple:
La
layout_width
etems
attributs sont en essayant de mettre la même valeur. Android semble choisir la plus grandefill_parent
valeur et ignore les autres. Et lorsque vous utilisez ce:Ici
ems
etmaxWidth
tentez de définir la même valeur, encore une fois de la plus grande valeur est utilisée. Donc, en fonction de ce que vous voulez vraiment, vous pouvez utiliser:ou remplacer
android:ems="10"
avecandroid:maxWidth="50dp"
si vous préférez travailler avec des dp.Enfin votre LinearLayout n'a qu'un seul enfant, l'EditText. Généralement lorsque cela arrive, vous pouvez supprimer le LinearLayout balises et l'utilisation de l'EditText par lui-même.
minWidth
etlayout_width="wrap_content"
(etems
) tous ensemble la valeur de base, il est similaire àmaxWidth
mais Android choisit le petit de la valeur d'entre eux. C'est pourquoi, si vous définissezlayout_width="wrap_content"
,maxWidth="500dp"
, etminWidth="500dp"
la mise en page sera 500dp large, à moins que l'écran est plus petit que 500dp.