2011-01-10 7 views
0

J'ai le code suivant pour essayer et définir le poids d'un linearLayout à 0,7, après avoir regardé la documentation et quelques exemples en ligne, il dit qu'il faut 3 paramètres, mais dans mon code, il sera ne me laisse pas:Set LinearLayout poids dans le code plutôt que le problème xml

LinearLayout linear = new LinearLayout(this); 
linear.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 

Alors ici il fixe la hauteur et la largeur, mais le dernier paramètre, il est dit dans la documentation est le poids et il ne me laissera pas le mettre là-dedans.

Répondre

2

Essayez ceci pour les layoutparams pour LinearLayout:

linear.setLayoutParams(
     new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 
             LayoutParams.WRAP_CONTENT, 
             1) 
); 

Comme preuve de concept: cela fonctionne. consultez l'importation et de les comparer avec votre propre :)

fichier

: Test.java

package com.huiges.stackOverFlow.examples 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.ViewGroup.LayoutParams; 
import android.widget.LinearLayout; 

public class Test extends Activity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     LinearLayout linear = new LinearLayout(this); 
     linear.setLayoutParams(
       new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 
               LayoutParams.WRAP_CONTENT, 
               1) 
     ); 


    } 

} 
+0

Je l'ai déjà essayé, c'est ce que je veux dire en ne prenant pas 3 paramètres. éclipse veut juste que je supprime le 1. C'est pourquoi il me confond. – SamRowley

+0

Etes-vous sûr d'utiliser les bons paquets? Vérifiez vos importations si neccesairy. J'ai vu ce que tu veux dire, mais ce code est analysé correctement dans mon éclipse. Je vais ajouter un cours complet si vous le souhaitez? – Nanne

+0

importez android.view.ViewGroup.LayoutParams; C'est la seule importation que j'ai en rapport avec LayoutParams, je suppose que c'est assez bien et évidemment j'ai aussi le paquet LinearLayout. – SamRowley

0

Utilisez LinearLayout.LayoutParams

LinearLayout linear = new LinearLayout(this); 
linear.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT,1)); 
0

Le dernier paramètre prend un flotteur. 0.7 est un double, utilisez 0.7f à la place pour obtenir un flotteur.

linear.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 
             LayoutParams.WRAP_CONTENT, 
             0.7f)); 
+0

Le problème @samRowley avait été que seulement 2 paramètres ont été acceptés, donc cela ne m'aidera pas. – Nanne

+0

De la question j'ai lu qu'il veut créer les LayoutParams avec trois paramètres, l'un d'entre eux (le poids) ayant la valeur 0.7 mais n'a pas pu. C'est exactement ce qui arrive si vous oubliez le 'f' et que le nombre est interprété comme un double. S'il utilise 0.7f le code fonctionne. Semble utile pour moi :) – Olle

Questions connexes