Android 扩展LinearLayout时,子视图不可见

Android 扩展LinearLayout时,子视图不可见,android,android-layout,Android,Android Layout,好的。所以我在Main中开始我的活动,抓取FragmentManager并实例化一个需要返回视图的片段。好啊因此,我延长了线性布局,以便有东西返回。我的活动和片段是快乐的,但我不是 我在父视图组中创建的三个线性布局(代码如下)。我已经通过计算孩子的数量和设置背景颜色来验证这一点。父对象也会根据子对象的高度更改大小(当我未在父对象上声明任何LayoutParams时) public类主菜单扩展了LinearLayout{ 私有ArrayList窗格=新建ArrayList(); 私人语境; 私人最

好的。所以我在Main中开始我的活动,抓取FragmentManager并实例化一个需要返回视图的片段。好啊因此,我延长了线性布局,以便有东西返回。我的活动和片段是快乐的,但我不是

我在父视图组中创建的三个线性布局(代码如下)。我已经通过计算孩子的数量和设置背景颜色来验证这一点。父对象也会根据子对象的高度更改大小(当我未在父对象上声明任何LayoutParams时)

public类主菜单扩展了LinearLayout{
私有ArrayList窗格=新建ArrayList();
私人语境;
私人最终整数
左=0,中心=1,右=2;
公共主菜单(上下文c){
超级(c);
上下文=c;
setBackgroundColor(颜色:白色);
设置方向(水平);
setLayoutParams(
新建LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL\u父级,
LinearLayout.LayoutParams.FILL_PARENT);

对于(int i=0;i问题很简单,因为您正在覆盖onLayout,而不使用它。如果您想自己布局子级,只需覆盖它(即,您正在设计一些独特的自定义布局)。在这种情况下,只需删除该方法,或调用super.onLayout。

Wow…在某个时候,我扩展了一些需要重写的内容。非常感谢。
public class Mainmenu extends LinearLayout {
private ArrayList<LinearLayout> panes = new ArrayList<LinearLayout>();
private Context context;
private final int
    LEFT = 0, CENTER = 1, RIGHT = 2;

public Mainmenu(Context c) {
    super(c);
    context = c;
    setBackgroundColor(Color.WHITE);
    setOrientation(HORIZONTAL);
    setLayoutParams(
            new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.FILL_PARENT,
                    LinearLayout.LayoutParams.FILL_PARENT));


    for(int i=0;i<=RIGHT;i++){                                      //Create the (3) Panes
        LinearLayout ll = new LinearLayout(context);
        ll.setLayoutParams(
                new LinearLayout.LayoutParams(300,
                        LinearLayout.LayoutParams.FILL_PARENT));
        switch(i){
        case LEFT | RIGHT:
            ll.setBackgroundColor(Color.DKGRAY);
        default:
            ll.setBackgroundColor(Color.BLACK);
        }
        ll.setOrientation(LinearLayout.VERTICAL);
        ll.setVisibility(VISIBLE);
        ll.setWillNotDraw(false);
        panes.add(i, ll);
        addView(ll);
    }

    LinearLayout.LayoutParams buttons =
        new LinearLayout.LayoutParams(100, 50);
    buttons.setMargins(15, 5, 5, 0);

    TextView tv1 = new TextView(context);
    tv1.setText("hello");
    tv1.setTextColor(Color.RED);
    panes.get(LEFT).addView(tv1, buttons);

    Button button = new Button(context);
    button.setText("Launch Editor");
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v){
        }
    });
    panes.get(CENTER).addView(button);
}

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    // TODO Auto-generated method stub

}

}