将RelativeLayout中的线性布局与中心和左对齐

时间:2012-03-05 06:16:13

标签: android android-linearlayout relativelayout

目前我已尝试将线性布局对齐到左侧和中央,但目前无法使其正常工作。请参阅以下代码:

    CustomLinearLayout sideMenu = new CustomLinearLayout(this);

    RelativeLayout.LayoutParams sideMenuParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,  LayoutParams.WRAP_CONTENT);
    sideMenuParams.addRule(RelativeLayout.CENTER_VERTICAL);
    sideMenuParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);   

    sideMenu.setLayoutParams(sideMenuParams);   
    sideMenu.setOrientation(LinearLayout.VERTICAL);
    sideMenu.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    sideMenu.setBackgroundColor(Color.TRANSPARENT);
    //sideMenu.setGravity(Gravity.CENTER);

    sideMenu.addView(AppSoups);
    sideMenu.addView(salads);
    sideMenu.addView(ribs);
    sideMenu.addView(favorites);
    sideMenu.addView(sandwiches);
    sideMenu.addView(sides);
    sideMenu.addView(desserts);

    RelativeLayout screenLayout = new RelativeLayout(this);
    screenLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
    screenLayout.setBackgroundResource(R.drawable.body_bkgd);
    screenLayout.addView(sideMenu);

    setContentView(screenLayout);

CustomLinearLayout只是一个扩展LinearLayout以进行自定义绘制的类。无论如何我在这里做错了什么?到目前为止,它对齐左侧和相对布局的顶部,但我无法将其置于中心位置。就像旁注一样,我的规则中的任何一个或两个都不能与将LinearLayout设置为中心(我在代码中注释掉它)一起工作。最后,我添加到线性布局的视图只是文本视图 - 只是FYI(代码未显示)

3 个答案:

答案 0 :(得分:2)

我认为你“覆盖你在第5行设置的布局参数,你在第7行设置了新的布局参数,所以

    sideMenuParams.addRule(RelativeLayout.CENTER_VERTICAL);
    sideMenuParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);  

并没有真正起作用

答案 1 :(得分:1)

在这里

screenLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 

尝试将WRAP_CONTENT更改为FILL_PARENT

答案 2 :(得分:0)

您可以将xml文件添加到包含自定义布局的位置吗?