项目地址 https://github.com/webabcd/AndroidDemo
作者 webabcd

示例如下:

/view/layout/ContentViewDemo1.java

/**
 * 演示 setContentView() 和 addContentView() 的用法
 */

package com.webabcd.androiddemo.view.layout;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;

import com.webabcd.androiddemo.R;

public class ContentViewDemo1 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 通过指定资源文件 id 的方式设置当前 activity 的布局(这就是最常见的方式,就不说了)
        // setContentView(int layoutResID);

        // 通过指定 view 的方式设置当前 activity 的布局
        LinearLayout linearLayout = new LinearLayout(this);
        linearLayout.setBackgroundColor(Color.GREEN);
        ViewGroup.LayoutParams params1 = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
        setContentView(linearLayout, params1);

        // 通过指定 view 的方式为当前的 activity 添加布局
        Button button = new Button(this);
        button.setText("webabcd");
        ViewGroup.LayoutParams params2 = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        addContentView(button, params2);

        /*
         * 运行本例之后,你打开 Layout Inspector 会看到如下文档结构(LinearLayout 和 Button 在文档结构上是平级的)
         * ContentFrameLayout - 这个是 activity 的父容器
         *   LinearLayout - 这个是你通过 setContentView(linearLayout, params1); 设置的布局
         *   Button - 这个是你通过 addContentView(button, params2); 添加的布局
         */
    }
}

项目地址 https://github.com/webabcd/AndroidDemo
作者 webabcd

相关文章:

  • 2022-01-19
  • 2021-11-08
  • 2021-07-20
  • 2021-11-22
  • 2021-11-07
  • 2021-09-03
  • 2021-12-27
  • 2021-12-27
猜你喜欢
  • 2021-06-07
  • 2022-01-28
  • 2021-06-11
  • 2021-08-07
  • 2021-05-15
  • 2022-03-07
  • 2021-05-16
相关资源
相似解决方案