Android动态设置textview的重力

时间:2013-04-12 10:08:14

标签: java android android-linearlayout textview gravity

我动态地将水平布局添加到我的活动中,并且我试图将textviews放在其中。

问题是,我无法将一些textviews放在右边,有些放在左边。

我尝试了textview.setgravity,但它只更改了textview内的文字位置,而不是移动textview本身。

编辑:这是我的一些代码,可以帮助您了解一下:

for(int i=0;i<nbelem;i++){          //génération des boutons des commandes
        layouts[i] = new RelativeLayout(this);
        layouts[i].setClickable(true);      //toute la zone est cliquable
        layouts[i].setId(i);
        layouts[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 150));


        Info[i] = new TextView(this);
        Info[i].setClickable(true); 
        Info[i].setId(i);
        Info[i].setText("Pizza 4 fromages x2 \n Pizza chevre x2");
        Info[i].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.FILL_PARENT));

        layouts[i].addView(Info[i]);


        Numcom[i] = new TextView(this);
        Numcom[i].setClickable(true);
        Numcom[i].setId(i);
        Numcom[i].setText("n°1522");
        Numcom[i].setGravity(Gravity.RIGHT | Gravity.TOP);              
        Numcom[i].setTextSize(12);
        Numcom[i].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,50));

2 个答案:

答案 0 :(得分:1)

听起来RelativeLayout可能符合您的需求并为您节省大量不推荐使用的嵌套LinearLayout(性能明智)。

答案 1 :(得分:0)

您必须将布局重力设置为包含textview的LinearLayout。

LayoutParams lp = new LayoutParams();
lp.gravity= Gravity.CENTER_HORIZONTAL; 
textview1.setLayoutParams(lp);

请务必使用LinearLayout.LayoutParams