以编程方式将LinearLayout置于另一个LinearLayout中

时间:2014-01-17 18:56:37

标签: java android-layout android-linearlayout textview android

我需要在居中的视图中并排放置两个TextView。

昨天我尝试过问一个类似的问题,只考虑相对布局。自从切换到两个TextView的父级线性布局后,我已经取得了很多进展,所以我想看看是否有人可以添加最终组件。

这就是我所拥有的:

public void addTableLink(String s, String s1, int g, LinearLayout L, int fsize, int textColor, int backgroundColor, int lpad, int tpad, final String section, final String selection){

    LinearLayout ll = new LinearLayout(this);

    ll.setOrientation(LinearLayout.HORIZONTAL);
    ll.setGravity(Gravity.CENTER_VERTICAL);

    ll.setLayoutParams(new LinearLayout.LayoutParams(400, 30, Gravity.CENTER_HORIZONTAL));

    ll.setBackgroundColor(backgroundColor);

    TextView tv1 = new TextView(this);
    TextView tv2 = new TextView(this);

    tv1.setText(s);
    tv2.setText(s1);

    tv1.setTextSize(fsize);
    tv2.setTextSize(fsize);

    tv1.setTextColor(textColor);
    tv1.setTextColor(textColor);

    ll.addView(tv1);
    ll.addView(tv2);

    L.addView(ll);

}

这给了我这个:

This is the result

我现在需要的是让“公司:Google”部分(白色部分)位于上方,同时保持文本左对齐。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

解决了它。这是代码,您需要做的就是将传递给此方法的视图居中(LinearLayout L)并且它工作得很好(秘诀是将新视图设置为水平):

public void addTableLink(String s, String s1, int g, LinearLayout L, int fsize, int textColor, int backgroundColor, int lpad, int tpad, final String section, final String selection){

    LinearLayout ll = new LinearLayout(this);

    ll.setOrientation(LinearLayout.HORIZONTAL);
    ll.setGravity(Gravity.CENTER_VERTICAL);

    ll.setLayoutParams(new LinearLayout.LayoutParams(400, 30));

    ll.setBackgroundColor(backgroundColor);

    TextView tv1 = new TextView(this);
    TextView tv2 = new TextView(this);

    tv1.setText(s);
    tv2.setText(s1);

    tv1.setPadding(lpad, tpad, 0, 0);

    tv1.setTextSize(fsize);
    tv2.setTextSize(fsize);

    tv1.setTextColor(textColor);
    tv2.setTextColor(Color.BLUE);
    tv2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {                  
            setMainView(section, selection);
            setTitle(section);
         }
        });

    ll.addView(tv1);
    ll.addView(tv2);

    L.addView(ll);

}

enter image description here