无法在android中使用嵌套布局执行代码

时间:2013-12-15 14:26:38

标签: android layout view

嗨,这里是有问题的代码(据我所知,我已经验证了所有不在的地方都有效):

现在,SchemeLayout,CityLayout,MastermidLayout,HQLayout和HandLayout都是具有特定尺寸的线性布局。他们每个人都有不同的颜色,因此我确切地知道他们的大小和放置的位置。然后我创建了一些辅助布局,以便屏幕将按我的意愿分割:

    LinearLayout schemeandcity = new LinearLayout(this);
    LinearLayout masterandhq = new LinearLayout(this);
    LinearLayout cards = new LinearLayout(this);
    LinearLayout cardsandecks = new LinearLayout(this);
    LinearLayout Complete = new LinearLayout(this);

    schemeandcity.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    masterandhq.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    cards.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    cardsandecks.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    Complete.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

    schemeandcity.setOrientation(LinearLayout.HORIZONTAL);
    masterandhq.setOrientation(LinearLayout.HORIZONTAL);
    cards.setOrientation(LinearLayout.VERTICAL);
    cardsandecks.setOrientation(LinearLayout.HORIZONTAL);
    Complete.setOrientation(LinearLayout.VERTICAL);

    schemeandcity.setOrientation(LinearLayout.HORIZONTAL);
    masterandhq.setOrientation(LinearLayout.HORIZONTAL);
    cards.setOrientation(LinearLayout.VERTICAL);
    cardsandecks.setOrientation(LinearLayout.HORIZONTAL);
    Complete.setOrientation(LinearLayout.VERTICAL);

    schemeandcity.addView(SchemeLayout);
    schemeandcity.addView(CityLayout);
    masterandhq.addView(MastermindLayout);
    masterandhq.addView(HQLayout);
    cards.addView(HandLayout);
    cards.addView(masterandhq);
    cards.addView(schemeandcity);
    //cardsandecks.addView(cards);
    //cardsandecks.addView(DecksLayout);
    //Complete.addView(cardsandecks);
    Complete.addView(cards);
    //Complete.addView(CBarLayout);


    setContentView(Complete);

每个现在代码失败。在上面的代码中,我只显示卡子布局。代码:

    cards.addView(HandLayout);
    cards.addView(masterandhq);

向我显示两种布局,但

    cards.addView(masterandhq);
    cards.addView(HandLayout);

只显示第一个(masterandhq)。它好像在我添加复合布局后,我无法添加任何其他内容。哦..当然,没有一个版本向我展示了schemeandcity。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

masterandhq将layout_height和width设置为match_parent,因此当您将其添加到线性布局时,它将占用整个空间,此后您添加的任何内容都将在屏幕外。