当前位置: 首页 > news >正文

安卓中静态和动态添加子 View 到容器

1.静态添加子View

在XML布局文件中直接定义子View:

<!-- activity_main.xml -->
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/container"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><!-- 静态添加的TextView --><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="静态添加的文本"android:padding="16dp"/>
</LinearLayout>

2.动态添加子View,主要是addView()方法(- addView() 内部会调用 requestLayout() + invalidate(),强制容器更新 UI。)

在Java代码中动态创建并添加子View:

// MainActivity.java
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 获取容器LinearLayout container = findViewById(R.id.container);// 创建TextViewTextView dynamicTextView = new TextView(this);dynamicTextView.setText("动态添加的文本");dynamicTextView.setPadding(16, 16, 16, 16);// 创建布局参数LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);// 添加子View到容器container.addView(dynamicTextView, params);}
}

关键区别

方式静态添加动态添加
实现位置XML布局文件Java/Kotlin代码
灵活性低(编译后无法修改)高(运行时可动态调整)
适用场景布局固定的组件需动态生成UI(如列表、表单)
性能加载快(无需运行时处理)加载稍慢(需运行时创建)

以上示例展示了安卓中静态和动态添加子View的基本方法。静态添加适合固定布局,动态添加则提供了更大的灵活性。

http://www.lqws.cn/news/560305.html

相关文章:

  • Zotero 7 插件:翻译与护眼主题
  • 如何快速学习一门新编程语言
  • 使用asyncio构建高性能网络爬虫
  • Vue 项目中 Excel 导入导出功能笔记
  • 开疆智能CCLinkIE转ModbusTCP网关连接傲博机器人配置案例
  • 道路交通标志检测数据集-智能地图与导航 交通监控与执法 智慧城市交通管理-2,000 张图像
  • 鸿蒙5:ArkTS基本介绍
  • Ubuntu20.04离线安装Realtek b852无线网卡驱动
  • Note2.2 机器学习训练技巧:Batch and Momentum(Machine Learning by Hung-yi Lee)
  • vue-29(创建 Nuxt.js 项目)
  • 创客匠人视角:创始人 IP 打造为何成为知识变现的核心竞争力
  • electron中显示echarts
  • 微机系统 第八章 模拟接口
  • Windows 合并多个txt到一个txt文件中 (txt文件的合并与拆分)
  • 【Go语言-Day 10】深入指针应用:解锁函数“引用传递”与内存分配的秘密
  • 如何让ChatGPT模仿人类写作,降低AIGC率?
  • 设计模式-代理模式、装饰者模式
  • [Java 基础]LinkedList
  • 告别脚本!用浏览器为 AWS CLI 实现真正的 Cognito 单点登录
  • 基于Spring Boot的网上购物平台设计与实现
  • 【软考--软件设计师】10.2 关系型数据库
  • 网络安全体系结构和安全防护
  • Linux内核网络协议栈深度解析:面向连接的INET套接字实现
  • 【AI实践】Mac一天熟悉AI模型智能体应用(百炼版)
  • 前端React和Vue框架的区别
  • Spring AI Alibaba 入门指南:打造企业级 AI 应用
  • 全面拥抱vue3
  • 编译安装交叉工具链 riscv-gnu-toolchain
  • 鸿蒙 Scroll 组件深度解析:丝滑滚动交互全场景实现
  • uni-app项目实战笔记26--uniapp实现富文本展示