安卓中靜態和動態添加子 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.pswp.cn/web/86711.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/86711.shtml
英文地址,請注明出處:http://en.pswp.cn/web/86711.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【NLP】自然語言項目設計03

目錄 03模型構建 代碼架構核心設計說明 初步構建模型并進行訓練時遇到的一些問題 問題一&#xff1a;模型欠擬合 使用1 model - lstm 解釋使用lstm時無法正常的進行cudnn加速 使用2 model - transformer 項目簡介 訓練一個模型&#xff0c;實現歌詞仿寫生成 任務類型&am…

WebRTC(十二):DTLS

在 WebRTC 中的作用 DTLS&#xff08;Datagram Transport Layer Security&#xff09;是 TLS 的 UDP 版本&#xff0c;在 WebRTC 中用于&#xff1a; 安全協商加密密鑰對等驗證&#xff08;基于 X.509 證書 fingerprint&#xff09;為 SRTP/SRTCP 提供密鑰材料 WebRTC 不直接…

北大肖臻《區塊鏈技術與應用》學習筆記

區塊鏈學習筆記 \huge{區塊鏈學習筆記} 區塊鏈學習筆記 這是關于北京大學肖臻老師的《區塊鏈技術與應用》課程的學習筆記。 BTC的數據結構 hash pointers&#xff1a;既保存結構體的對應地址位置&#xff08;指針&#xff09;&#xff0c;又保存結構體對應映射的hash值&#…

MongoDB 驅動升級性能測試報告

測試背景 將 MongoDB Java 驅動從 4.11.5 升級至 5.5.1&#xff0c;并配合 Reactor Core 3.8.0-M4 進行性能對比測試。測試主要圍繞插入、查詢、更新和刪除四個核心操作進行。 環境配置 操作系統: Windows 11CPU: Intel Core? i7-14700F, 28 核心, 2.10 GHzJDK: OpenJDK 21.…

淘寶商品評論實時采集 API 接入指南:從零開始實戰開發

在電商數據分析領域&#xff0c;商品評論數據蘊含著用戶對產品的真實反饋&#xff0c;對商家優化產品、提升服務質量具有重要價值。本文將詳細介紹如何接入淘寶 API&#xff0c;實現商品評論的實時采集&#xff0c;從環境搭建到代碼實現進行全流程講解。 1. 淘寶api概述 淘寶…

ffpaly播放 g711a音頻命令

ffpaly播放 g711a音頻命令 ffplay 播放 G.711 A-law (8kHz, mono, 16bit) 音頻的命令&#xff1a; ffplay -f alaw -ar 8000 -ac 1 input.g711a 或ffplay -f alaw -ar 8000 -ac 1 audio_chn0.g711a 各參數說明&#xff1a; -f alaw&#xff1a;指定輸入音頻格式為 G.711 A-law…

composer全局配置

composer配置 composer查看全局配置 composer config -l -gcomposer 更新慢 composer下載不下來問題解決 更換composer鏡像源&#xff0c;可以執行嘗試以下幾種&#xff1a; 1、更換成阿里鏡像&#xff1a; composer config -g repo.packagist composer https://mirrors.al…

ivx創建一個測試小案例

文章目錄 前端后端提交信息服務提交信息事件跳轉列表頁事件下載事件詳情頁事件 https://editor.ivx.cn/ 主題選擇一下 前端 在前臺新建一個頁面名為提交頁&#xff0c;內邊距左和內邊距右都設置為40&#xff0c;水平居中和垂直居中設置一下&#xff1b; 新建兩個輸入框&#x…

【MongoDB】MongoDB從零開始詳細教程 核心概念與原理 環境搭建 基礎操作

MongoDB從零開始詳細教程 核心概念與原理 環境搭建 基礎操作 一、核心概念與原理1. 核心組件2. MongoDB vs 關系型數據庫 二、環境搭建&#xff08;Windows/Linux/CentOS&#xff09;1. Windows安裝2. CentOS安裝3. 連接驗證 三、基礎操作&#xff08;CRUD&#xff09;1. 數據庫…

GeoTools 結合 OpenLayers 實現屬性查詢

前言 在GIS開發中&#xff0c;屬性查詢是非常普遍的操作&#xff0c;這是每一個GISer都要掌握的必備技能。實現高效的數據查詢功能可以提升用戶體驗&#xff0c;完成數據的快速可視化表達。 本篇教程在之前一系列文章的基礎上講解如何將使用GeoTools工具結合OpenLayers實現Post…

vue-27(實踐練習:將現有組件重構為使用組合式 API)

實踐練習:將現有組件重構為使用組合式 API 理解重構過程 重構是任何開發者的關鍵技能,尤其是在采用新范式如 Vue.js 中的 Composition API 時。它涉及在不改變外部行為的情況下重新組織現有代碼,旨在提高可讀性、可維護性和可重用性。在從 Options API 遷移到 Composition…

基于Uniapp+SpringBoot+Vue 的在線商城小程序

開發系統:Windows10 架構模式:MVC/前后端分離 JDK版本: Java JDK1.8 開發工具:IDEA 數據庫版本: mysql8.0 數據庫可視化工具: navicat 服務器: SpringBoot自帶 apache tomcat 主要技術: Java,Springboot,mybatis,mysql,jquery,html,vue 角色:用戶 商家 管理員 用戶菜單:首頁:商…

華為云Flexus+DeepSeek征文|利用華為云一鍵部署的Dify平臺構建高效智能電商客服系統實戰

目錄 前言 1 華為云快速搭建 Dify-LLM 應用平臺 1.1 一鍵部署簡介 1.2 設置管理員賬號登錄dify平臺 2 接入 DeepSeek 大模型與 Reranker 模型 2.1 接入自定義 LLM 模型 2.2 設置 Reranker 模型 3 構建電商知識庫 3.1 數據源選擇 3.2 分段設置與清洗 3.3 處理并完成 …

python應用day07---pyechars模塊詳解

1.pyecharts安裝: pip install pyecharts 2.pyecharts入門: # 1.導入模塊 from pyecharts.charts import Line# 2.創建Line對象 line Line() # 添加數據 line.add_xaxis(["中國", "美國", "印度"]) line.add_yaxis("GDP數據", [30…

高檔背景色

https://andi.cn/page/622250.html

教學視頻畫中畫播放(PICTURE-IN-PICTURE)效果

視頻平臺的畫中畫&#xff08;PIP&#xff09;功能通過小窗播放提升用戶體驗&#xff1a;1&#xff09;支持多任務處理&#xff0c;如邊看教程邊操作文檔&#xff1b;2&#xff09;減少應用跳出率&#xff0c;增強用戶粘性&#xff1b;3&#xff09;優化屏幕空間利用&#xff1…

MySQL (一):數據類型,完整性約束和表間關系

在當今數據驅動的時代&#xff0c;數據庫作為數據存儲與管理的核心工具&#xff0c;其重要性不言而喻。MySQL 作為一款廣泛應用的開源數據庫&#xff0c;憑借其高性能、高可靠性和豐富的功能&#xff0c;深受開發者喜愛。本文作為 MySQL 系列博客的開篇&#xff0c;將帶你深入了…

【軟考高項論文】信息系統項目的資源管理

摘要 本文圍繞信息系統項目的資源管理展開論述。首先闡述了項目資源管理的基本過程&#xff0c;包括資源規劃、估算、獲取、配置、監控和釋放等關鍵步驟&#xff0c;并給出資源分解結構示例。接著結合2024年參與管理的某信息系統項目實際情況&#xff0c;詳細說明資源管理的具…

阿里云Ubuntu服務器上安裝MySQL并配置遠程連接

1. 安裝MySQL 首先連接到你的Ubuntu服務器&#xff0c;然后執行&#xff1a; # 更新軟件包列表 sudo apt update# 安裝MySQL服務器 sudo apt install mysql-server# 啟動MySQL服務 sudo systemctl start mysql# 設置MySQL開機自啟 sudo systemctl enable mysql# 檢查MySQL狀態…

STM32HAL 旋轉編碼器教程

配置時鐘編碼模式讀取方法&#xff1a; if(__HAL_TIM_IS_TIM_COUNTING_DOWN(&htim1) 0){count - __HAL_TIM_GET_COUNTER(&htim1);}else{count __HAL_TIM_GET_COUNTER(&htim1);}bsp_dtUInt32_show(count);__HAL_TIM_SET_COUNTER(&htim1, 0); 通過 __HAL_TIM…