2013-06-13 5 views
0

J'ai essayé de trouver un aswer pour cela, mais je ne pouvais pas. J'ai un TableLayout avec deux TableRow s. Dans le premier il y a un TextView qui est environ 150dp de la largeur. Dans le second, il y a un EditText dont la largeur devrait être d'environ 40dp, mais le problème est que la largeur du EditText est forcée de correspondre à la largeur du TextView ci-dessus.android - EditText largeur à l'intérieur de TableRow

Ma question est, est-il un moyen d'éviter cela? Je veux dire, pour faire la largeur de EditText40dp, quelle que soit la largeur de TextView, sans créer un autre tablelayout?

Merci d'avance. Désolé pour mon anglais limité.

En cas, quelqu'un a ce problème, je l'ai résolu en utilisant la prochaine:

Supposant que vous avez une ligne de table avec deux ou plusieurs éléments, mis layout_width à match_parent, le premier layout_weight élément à 1 et la seconde élément à 2. Cela remplira la ligne entière avec les deux éléments, mais le second sera la taille double de la première. Si vous avez plus de deux éléments et que l'un doit être plus grand que les autres, utilisez le poids 2 sur cet élément et le poids 1 sur les autres.

Espérons aider quelqu'un.

+0

je suggère quelque chose avec des poids comme @The noir Chevalier a ci-dessous. –

+0

La mise en page est-elle créée de manière dinamique ou XML? En XML, vous pouvez utiliser android: layout_width = "40dp" sur le EditText. Si vous ajoutez le texte EditText à partir du code, vous devez utiliser un objet LayoutParams et utiliser la méthode addView (View, LayoutParams) de la classe ViewGroup. Avec l'objet LayoutParams, vous pouvez spécifier la taille de la vue dans la mise en page. – viplezer

+0

C'est le problème, la définition d'une largeur spécifiée ne fonctionne pas pour moi. Il change toujours la largeur pour s'adapter au TextView. – Ariel

Répondre

0

Vous pouvez faire un autre parent pour votre EditText, comme un LinearLayout,

Vous obtiendrez: TableLayout-> TableRow-> LinearLayout-> EditText

+1

Je voudrais éviter l'utilisation de plus de mises en page. Je devrais préciser dans ma question que je devais ajouter des lignes de façon dinamique. – Ariel

Questions connexes