【问题标题】:How to add a whole layout withing main layout in android如何在android中添加带有主布局的整个布局
【发布时间】:2014-01-11 14:41:25
【问题描述】:

我尝试使用以下代码在主布局中添加两个布局 但这在将布局设置为框架并将其添加到视图中时会出错

public class MainActivity extends Activity {

FrameLayout rootLayout;
FrameLayout frame1,frame2;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    rootLayout=new FrameLayout(getApplicationContext());
    frame1=(FrameLayout)findViewById(R.layout.frame1);
    frame2=(FrameLayout)findViewById(R.layout.frame2);

    LayoutParams param1=new FrameLayout.LayoutParams(180,300);
    LayoutParams param2=new FrameLayout.LayoutParams(180,300);

    param1.gravity=Gravity.LEFT;
    param2.gravity=Gravity.RIGHT;

    param1.setMargins(0, 0, 30, 30);
    param2.setMargins(30, 0, 0, 30);


    frame1.setLayoutParams(param1);
    frame2.setLayoutParams(param2);

    rootLayout.addView(frame1);
    rootLayout.addView(frame2);

}
}

【问题讨论】:

  • 发布您收到的错误/LogCat。

标签: android layout layoutparams


【解决方案1】:

您必须从其父级 View 中删除 frame1frame2 视图...

这可能会对你有所帮助...

    FrameLayout rootLayout;
    FrameLayout frame1, frame2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        rootLayout = new FrameLayout(this);
        frame1 = (FrameLayout) getLayoutInflater().inflate(R.layout.frame1,null);
        frame2 = (FrameLayout) getLayoutInflater().inflate(R.layout.frame2, null);

        FrameLayout.LayoutParams param1 = new FrameLayout.LayoutParams(180, 300);
        FrameLayout.LayoutParams param2 = new FrameLayout.LayoutParams(180, 300);

        param1.gravity = Gravity.LEFT;
        param2.gravity = Gravity.RIGHT;

        param1.setMargins(0, 0, 30, 30);
        param2.setMargins(30, 0, 0, 30);

        frame1.setLayoutParams(param1);
        frame2.setLayoutParams(param2);

        rootLayout.addView(frame1);
        rootLayout.addView(frame2);
        setContentView(rootLayout);
    }

【讨论】:

  • 这无济于事,因为 frame1 和 frame2 是完全不同的布局文件
  • 如果是不同的布局,在MainActivity中怎么调用findViewById()?
猜你喜欢
  • 2016-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 1970-01-01
  • 2011-06-15
  • 2018-07-17
相关资源
最近更新 更多