Jetpack Compose 常用控件

Jetpack Compose 常用控件

  • 一、基礎展示控件:呈現靜態內容
  • 二、交互控件:響應用戶操作
  • 三、列表與網格控件:展示大量數據
  • 四、導航與標簽控件:組織頁面結構
  • 五、反饋控件:提示與加載狀態
  • 六、布局控件:組織 UI 結構
  • 七、自定義控件:擴展現有功能
  • 總結

Jetpack Compose 作為 Android 官方推薦的現代 UI 框架,以聲明式編程為核心,提供了豐富的控件體系。這些控件不僅覆蓋了傳統 View 系統的所有功能,還通過可組合性、狀態驅動等特性簡化了開發流程。本文將系統梳理 Compose 中的核心控件,從基礎展示到復雜交互,助你全面掌握 UI 開發利器。

一、基礎展示控件:呈現靜態內容

基礎展示控件用于顯示文本、圖片等靜態內容,是構建 UI 的 “原子單元”。

  1. Text:文本展示
    Text 是最基礎的控件,用于顯示字符串,支持豐富的樣式配置。
@Preview
@Composable
fun TextExamples() {Column(modifier = Modifier.padding(16.dp).background(Color.White)) {// 基礎文本Text("基礎文本")// 帶樣式的文本Text(text = "大號粗體文本",fontSize = 20.sp,fontWeight = FontWeight.Bold,color = Color.Blue)// 多行文本與換行Text(text = "這是一段很長的文本,會自動換行顯示。Compose的Text控件默認支持多行文本,無需額外配置。",maxLines = 2, // 限制最大行數overflow = TextOverflow.Ellipsis, // 超出部分顯示省略號modifier = Modifier.width(200.dp))// 帶點擊事件的文本Text(text = "可點擊文本",modifier = Modifier.clickable { println("文本被點擊") }.padding(8.dp),color = Color.Red)}
}

核心屬性:fontSize(字體大小)、fontWeight(字重)、color(顏色)、maxLines(最大行數)、textAlign(對齊方式)。
在這里插入圖片描述

  1. Image:圖片展示
    Image 用于顯示本地資源、網絡圖片或內存中的圖像,配合 painter 指定圖片源。
@Preview
@Composable
fun ImageExamples() {Column(modifier = Modifier.padding(16.dp)) {// 本地資源圖片(res/drawable目錄下)Image(painter = painterResource(id = R.drawable.ic_launcher_foreground),contentDescription = "應用Logo", // 無障礙描述(必傳)modifier = Modifier.size(100.dp))// 網絡圖片(需配合Coil等庫)AsyncImage(model = "https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png",contentDescription = "baidu",modifier = Modifier.size(100.dp),contentScale = ContentScale.Crop // 裁剪填充)// 圓形圖片(配合clip修飾符)Image(painter = painterResource(id = R.drawable.btn_bg),contentDescription = "圓形頭像",modifier = Modifier.size(80.dp).clip(CircleShape), // 圓形裁剪contentScale = ContentScale.Fit)}
}

注意:網絡圖片需添加 coil-compose 依賴;contentDescription 用于無障礙服務,不可省略(純裝飾性圖片可傳 null,但需顯式聲明)。

  1. Icon:圖標展示
    Icon 專門用于顯示矢量圖標(如 Material Icons),體積小且支持無損縮放。
@Preview
@Composable
fun IconExamples() {Row(Modifier.background(Color.White),horizontalArrangement = Arrangement.spacedBy(16.dp)) {// Material內置圖標Icon(imageVector = Icons.Default.Home,contentDescription = "首頁",tint = Color.Blue, // 圖標顏色modifier = Modifier.size(24.dp))// 自定義矢量圖標(res/drawable目錄下的xml矢量圖)Icon(painter = painterResource(id = R.drawable.ic_launcher_foreground),contentDescription = "自定義圖標",modifier = Modifier.size(32.dp))}
}

常用場景:導航欄、按鈕、狀態指示等,常與 IconButton 結合實現點擊交互。
在這里插入圖片描述

二、交互控件:響應用戶操作

交互控件是用戶與 APP 交互的核心,包括按鈕、開關、滑塊等,需配合狀態管理實現動態反饋。

  1. Button:按鈕
    Button 是最常用的交互控件,支持點擊事件、文本 + 圖標組合、樣式定制。
@Preview
@Composable
fun ButtonExamples() {Column(Modifier.background(Color.White),verticalArrangement = Arrangement.spacedBy(8.dp)) {// 基礎按鈕Button(onClick = { println("基礎按鈕點擊") }) {Text("確定")}// 帶圖標的按鈕Button(onClick = { /* 點擊事件 */ }) {Icon(imageVector = Icons.Default.Settings,contentDescription = null,modifier = Modifier.size(ButtonDefaults.IconSize))Spacer(modifier = Modifier.size(ButtonDefaults.IconSpacing)) // 圖標與文本間距Text("設置")}// 文本按鈕(無背景,僅文本樣式)TextButton(onClick = { /* 點擊事件 */ }) {Text("取消")}// 圖標按鈕(圓形,常用于工具欄)IconButton(onClick = { /* 點擊事件 */ }) {Icon(imageVector = Icons.Default.Menu,contentDescription = "菜單")}// 禁用狀態Button(onClick = { /* 點擊事件 */ },enabled = false // 禁用按鈕) {Text("禁用按鈕")}}
}

擴展:通過 shape(形狀)、colors(顏色)、elevation(陰影)自定義按鈕樣式,或使用 OutlinedButton(描邊按鈕)。
在這里插入圖片描述

  1. 選擇控件:CheckboxRadioButtonSwitch
    這類控件用于接收用戶的選擇輸入,通常與 mutableStateOf 綁定狀態。
@Preview
@Composable
fun SelectionControls() {Column(modifier = Modifier.padding(16.dp).background(Color.White)) {// 復選框(可多選)var checked by remember { mutableStateOf(false) }Row(verticalAlignment = Alignment.CenterVertically) {Checkbox(checked = checked,onCheckedChange = { checked = it })Text("同意條款", modifier = Modifier.clickable { checked = !checked })}// 單選按鈕(需配合RadioGroup邏輯)val options = listOf("選項1", "選項2", "選項3")var selectedOption by remember { mutableStateOf(options[0]) }options.forEach { option ->Row(verticalAlignment = Alignment.CenterVertically) {RadioButton(selected = selectedOption == option,onClick = { selectedOption = option })Text(option, modifier = Modifier.clickable { selectedOption = option })}}// 開關(類似復選框,常用于啟用/禁用功能)var switchChecked by remember { mutableStateOf(false) }Row(verticalAlignment = Alignment.CenterVertically) {Text("開啟通知")Switch(checked = switchChecked,onCheckedChange = { switchChecked = it })}}
}

注意:單選按鈕需手動實現 “互斥” 邏輯(選中一個時取消其他);所有選擇控件的狀態需用 remember 存儲以觸發重組。
在這里插入圖片描述

  1. 輸入控件:TextField
    TextField 用于接收用戶文本輸入(如登錄、搜索),支持單行 / 多行、提示文本、輸入驗證等。
@Preview
@Composable
fun TextFieldExamples() {Column(modifier = Modifier.padding(16.dp)) {// 基礎輸入框var text by remember { mutableStateOf("") }TextField(value = text,onValueChange = { text = it },label = { Text("請輸入內容") }, // 提示標簽(聚焦時上移)modifier = Modifier.fillMaxWidth())// 密碼輸入框var password by remember { mutableStateOf("") }TextField(value = password,onValueChange = { password = it },label = { Text("密碼") },visualTransformation = PasswordVisualTransformation(), // 密碼隱藏singleLine = true, // 單行輸入(避免軟鍵盤換行)modifier = Modifier.fillMaxWidth())// 多行輸入框(如備注)var note by remember { mutableStateOf("") }TextField(value = note,onValueChange = { note = it },label = { Text("備注") },maxLines = 3, // 最大3行modifier = Modifier.fillMaxWidth())}
}

進階:通過 keyboardOptions 指定鍵盤類型(如 KeyboardType.Number),isError 顯示錯誤狀態,leadingIcon 添加前綴圖標。
在這里插入圖片描述

  1. 其他交互控件
    Slider:滑動條,用于選擇范圍內的數值(如音量調節):
@Preview
@Composable
fun SliderExample(){var sliderValue by remember { mutableStateOf(0f) }Slider(value = sliderValue,onValueChange = { sliderValue = it },valueRange = 0f..100f // 取值范圍)
}

在這里插入圖片描述

DropdownMenu:下拉菜單,點擊按鈕時顯示選項列表:

@Preview
@Composable
fun DropDownMenuExample() {var expanded by remember { mutableStateOf(false) }Box {Button(onClick = { expanded = true }) { Text("選擇選項") }DropdownMenu(expanded = expanded,onDismissRequest = { expanded = false }) {DropdownMenuItem(text = { Text("選項1") }, onClick = { expanded = false })DropdownMenuItem(text = { Text("選項2") }, onClick = { expanded = false })}}
}

在這里插入圖片描述

三、列表與網格控件:展示大量數據

當需要展示多條數據(如聯系人、商品列表)時,使用列表 / 網格控件,它們通過 “懶加載” 提升性能。

  1. LazyColumn:垂直滾動列表
    LazyColumn 僅渲染可見項,適合大量數據,類似傳統 RecyclerView
@Preview
@Composable
fun LazyColumnExample() {val items = List(100) { "列表項 $it" } // 模擬100條數據LazyColumn(modifier = Modifier.fillMaxSize(),contentPadding = PaddingValues(16.dp), // 列表內邊距verticalArrangement = Arrangement.spacedBy(8.dp) // 項間距) {// 頭部item {Text("列表標題", fontSize = 20.sp, fontWeight = FontWeight.Bold)Spacer(modifier = Modifier.height(16.dp))}// 數據項items(items) { itemText ->Box(modifier = Modifier.fillMaxWidth().height(60.dp).background(Color.LightGray).padding(16.dp)) {Text(text = itemText)}}// 底部item {Spacer(modifier = Modifier.height(16.dp))Text("列表底部", color = Color.Gray)}}
}

核心 API:item(單個項)、items(批量項)、itemsIndexed(帶索引的批量項)。
在這里插入圖片描述

  1. LazyRow:水平滾動列表
    LazyColumn 邏輯一致,用于水平方向的滾動列表(如圖片輪播)。
@Preview
@Composable
fun LazyRowExample() {LazyRow(modifier = Modifier.height(120.dp),contentPadding = PaddingValues(16.dp),horizontalArrangement = Arrangement.spacedBy(16.dp)) {items(20) { index ->Box(modifier = Modifier.width(100.dp).fillMaxHeight().background(Color(0xFF6200EE)),contentAlignment = Alignment.Center) {Text(text = "Item $index", color = Color.White)}}}
}

在這里插入圖片描述

  1. LazyVerticalGrid:垂直網格
    用于展示多行多列的網格布局(如相冊、商品列表)。
@Preview
@Composable
fun LazyGridExample() {LazyVerticalGrid(columns = GridCells.Fixed(2), // 固定2列modifier = Modifier.fillMaxSize(),contentPadding = PaddingValues(16.dp),horizontalArrangement = Arrangement.spacedBy(16.dp),verticalArrangement = Arrangement.spacedBy(16.dp)) {items(20) { index ->Box(modifier = Modifier.aspectRatio(1f) // 正方形.background(Color.LightGray),contentAlignment = Alignment.Center) {Text(text = "Item $index")}}}
}

列數配置:GridCells.Fixed(n)(固定 n 列)、GridCells.Adaptive(minSize)(自適應列數,每列至少minSize寬度)。
在這里插入圖片描述

四、導航與標簽控件:組織頁面結構

這類控件用于實現頁面導航、內容分類,是多頁面 APP 的核心組件。

  1. TabRowTab:標簽頁
    TabRow 配合 Tab 實現標簽切換(如 “推薦”“熱門” 標簽)。
@Preview
@Composable
fun TabExample() {val tabs = listOf("首頁", "設置", "我的")var selectedTabIndex by remember { mutableStateOf(0) }Column(modifier = Modifier.fillMaxSize().background(Color.White)) {// 標簽欄TabRow(selectedTabIndex = selectedTabIndex) {tabs.forEachIndexed { index, title ->Tab(selected = selectedTabIndex == index,onClick = { selectedTabIndex = index },text = { Text(title) },icon = {Icon(imageVector = when (index) {0 -> Icons.Default.Home1 -> Icons.Default.Settingselse -> Icons.Default.Person},contentDescription = title)})}}// 標簽內容when (selectedTabIndex) {0 -> Text("首頁內容", modifier = Modifier.padding(16.dp))1 -> Text("設置內容", modifier = Modifier.padding(16.dp))2 -> Text("我的內容", modifier = Modifier.padding(16.dp))}}
}

在這里插入圖片描述

  1. Navigation 組件:頁面導航
    配合 Jetpack Navigation 庫實現頁面間跳轉,通過 NavHostcomposable 定義路由。
// 首頁
@Composable
fun HomeScreen(onNavigateToDetail: () -> Unit) {Button(onClick = onNavigateToDetail) { Text("去詳情頁") }
}// 詳情頁
@Composable
fun DetailScreen(onNavigateBack: () -> Unit) {Button(onClick = onNavigateBack) { Text("返回首頁") }
}@Preview
@Composable
fun NavigationExample() {val navController = rememberNavController()NavHost(navController = navController,startDestination = "home" // 初始頁面) {composable("home") {HomeScreen(onNavigateToDetail = { navController.navigate("detail") })}composable("detail") {DetailScreen(onNavigateBack = { navController.popBackStack() })}}
}

五、反饋控件:提示與加載狀態

用于向用戶反饋操作結果、加載狀態或錯誤信息。

  1. 進度指示器:CircularProgressIndicatorLinearProgressIndicator
    顯示操作進度(如網絡請求、文件下載)。
@Composable
fun ProgressIndicators() {Column(horizontalAlignment = Alignment.CenterHorizontally) {// 圓形進度條(無限循環)CircularProgressIndicator(modifier = Modifier.size(40.dp),color = Color.Blue,strokeWidth = 4.dp)Spacer(modifier = Modifier.height(16.dp))// 線性進度條(指定進度)var progress by remember { mutableStateOf(0.3f) }LinearProgressIndicator(progress = progress,modifier = Modifier.fillMaxWidth(0.5f),color = Color.Green)}
}

在這里插入圖片描述

  1. 對話框:AlertDialogBottomSheetDialog
    用于重要操作確認、信息提示或復雜輸入。
@OptIn(ExperimentalMaterial3Api::class)
@Preview
@Composable
fun DialogExamples() {var showAlert by remember { mutableStateOf(false) }var showBottomSheet by remember { mutableStateOf(false) }Column {Button(onClick = { showAlert = true }) { Text("顯示對話框") }Button(onClick = { showBottomSheet = true }) { Text("顯示底部彈窗") }}//  AlertDialog(居中彈窗)if (showAlert) {AlertDialog(onDismissRequest = { showAlert = false }, // 點擊外部關閉title = { Text("提示") },text = { Text("確定要執行此操作嗎?") },confirmButton = {Button(onClick = { showAlert = false }) { Text("確定") }},dismissButton = {TextButton(onClick = { showAlert = false }) { Text("取消") }})}// 底部彈窗if (showBottomSheet) {ModalBottomSheet(onDismissRequest = { showBottomSheet = false }) {Column(modifier = Modifier.padding(16.dp)) {Text("底部彈窗內容", fontSize = 18.sp)Spacer(modifier = Modifier.height(16.dp))Button(onClick = { showBottomSheet = false }) { Text("關閉") }}}}
}

在這里插入圖片描述

  1. Snackbar:輕量提示
    用于顯示短暫的操作反饋(如 “保存成功”),通常與 Scaffold 配合使用。
@Preview
@Composable
fun SnackbarExample() {val snackbarHostState = remember { SnackbarHostState() }val scope = rememberCoroutineScope()Scaffold(snackbarHost = {SnackbarHost(snackbarHostState) { data ->Snackbar {// The Material spec recommends a maximum of 2 lines of text.Text(data.visuals.message, maxLines = 2, overflow = TextOverflow.Ellipsis)}}},floatingActionButton = {ExtendedFloatingActionButton(onClick = {scope.launch {val longMessage ="Very very very very very very very very very very very very very " +"very very very very very very very very very very very very " +"very very very very very very very very very very long message"snackbarHostState.showSnackbar(longMessage)}}) {Text("Show snackbar")}},content = { innerPadding ->Text(text = "Multiline Snackbar Demo",modifier = Modifier.padding(innerPadding).fillMaxSize().wrapContentSize())})
}

在這里插入圖片描述

六、布局控件:組織 UI 結構

布局控件用于排列子組件,是構建復雜 UI 的基礎(前文布局博客已詳細介紹,此處簡要回顧核心控件):

Column:垂直排列子組件;
Row:水平排列子組件;
Box:層疊或定位子組件;
ConstraintLayout:通過約束關系排列子組件;
FlowRow/FlowColumn:自動換行的流式布局。

七、自定義控件:擴展現有功能

當現有控件無法滿足需求時,可通過組合現有控件或使用 Layout 函數創建自定義控件。
示例:自定義星級評分控件

@Composable
fun RatingBar(rating: Int,maxRating: Int = 5,onRatingChanged: (Int) -> Unit,starSize: Dp = 24.dp
) {Row {repeat(maxRating) { index ->Icon(imageVector =Icons.Default.Star,contentDescription = "評分 $index",tint = if (index < rating) Color.Yellowelse Color.Gray,modifier = Modifier.size(starSize).clickable { onRatingChanged(index + 1) })}}
}@Preview
@Composable
fun UseRatingBar() {var rating by remember { mutableStateOf(3) }RatingBar(rating = rating,onRatingChanged = { rating = it })
}

在這里插入圖片描述

總結

Jetpack Compose 的控件體系以 “可組合性” 為核心,從基礎的 TextButton 到復雜的 LazyColumnNavHost,覆蓋了 Android 開發的所有 UI 場景。與傳統 View 相比,Compose 控件具有以下優勢:

聲明式語法:直接描述 UI 狀態,無需手動更新視圖;
狀態驅動:通過 remembermutableStateOfAPI 實現狀態與 UI 的自動同步;
靈活組合:任何控件都可作為子組件組合,輕松構建復雜 UI
Material Design 3 原生支持:內置符合現代設計規范的組件,無需額外適配。

掌握這些控件后,你可以快速構建出美觀、高效、易維護的 Android 應用。實際開發中,建議結合官方文檔和具體場景,選擇最合適的控件組合,以實現最佳的用戶體驗。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918207.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918207.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918207.shtml

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

相關文章

Android適配最新SplashScreen方案:讓啟動頁不再“翻車“

Android適配最新SplashScreen方案:讓啟動頁不再"翻車" 各位開發者大佬們,最近是不是又被Android的SplashScreen適配搞得焦頭爛額?別慌,今天咱們就來聊聊這個讓人又愛又恨的啟動頁適配方案,保證讓你笑出腹肌的同時,還能把技術要點牢牢掌握![6][7][9][10] 一、…

【自動駕駛】《Sparse4Dv3》代碼學習筆記

這里時間比較有限&#xff0c;優先看Sparse4Dv3方法里面相對以前改動的地方。 0.參考 代碼v1/v2/v3:https://github.com/HorizonRobotics/Sparse4D 跑起來&#xff1a;https://github.com/HorizonRobotics/Sparse4D/blob/v3.0/docs/quick_start.md 1.方法 &#xff08;1&a…

「ECG信號處理——(22)Pan-Tompkins Findpeak 閾值檢測 差分閾值算法——三種R波檢測算法對比分析」2025年8月8日

目錄 1、引言 2、算法原理 &#xff08;1&#xff09;Pan-Tompkins 算法&#xff08;方法1&#xff09; &#xff08;2&#xff09;Findpeak 閾值檢測算法&#xff08;方法2&#xff09; &#xff08;3&#xff09;差分閾值算法&#xff08;方法3&#xff09; 3、算法性能…

Qdrant Filtering:must / should / must_not 全解析(含 Python 實操)

在向量搜索中&#xff0c;過濾&#xff08;Filtering&#xff09; 是保證結果精準性和業務契合度的關鍵手段。Qdrant 的過濾機制不僅能在向量相似度檢索的基礎上疊加結構化條件&#xff0c;還提供了靈活的布爾邏輯組合&#xff0c;讓我們可以像寫數據庫查詢一樣&#xff0c;精準…

五、RuoYi-Cloud-Plus 前端項目部署以及如何改后端請求地址。

1.前情描述 前面的文章我們介紹了RuoYi-Cloud-Plus的nocos的配置內容&#xff0c;已經啟動其他服務要注意什么東西。 專欄內容在這&#xff0c;感興趣可以看看。 https://blog.csdn.net/weixin_42868605/category_13023920.html 2.前端項目部署。 官網地址&#xff1a;plus…

工作量評估

工作量評估 API 工作量評估&#xff1a; 得分 入參個數 * 0.2 業務規則 * 0.5 改動的庫表個數 * 0.3 得分&#xff08;1-2&#xff09;&#xff1a;簡單API-5人天 得分&#xff08;3-8&#xff09;&#xff1a;中等API-8人天 得分&#xff08;8-15&#xff09;&#xff1a;復…

籃球運動(動態規劃)

題目描述小明建造了一個籃球場&#xff0c;他請來了2行n列的人&#xff0c;想讓他們進行比賽。每一個人都有一個能力值&#xff0c;第一行分別為h11&#xff0c;h12&#xff0c;…&#xff0c;h1n&#xff0c;第二行為h21&#xff0c;h22&#xff0c;…&#xff0c;h2n。現在小…

區塊鏈與大數據分析技術深度解析

目錄 區塊鏈與大數據分析技術深度解析 1. 引言:當區塊鏈遇見大數據 2. 區塊鏈數據特性 2.1 數據結構差異 2.2 區塊鏈數據層級 3. 數據獲取技術 3.1 節點直連方案 3.2 鏈上數據湖架構 4. 數據分析關鍵技術 4.1 交易圖譜分析 4.2 地址聚類算法 5. 鏈上分析應用場景 5.1 反洗錢(A…

網絡基礎——網絡層級

OSI七層模型OSI七層模型名稱功能協議應用層直接為用戶應用程序&#xff08;如瀏覽器、郵件客戶端&#xff09;提供網絡服務接口。HTTP/HTTPS&#xff08;網頁瀏覽&#xff09;FTP&#xff08;文件傳輸&#xff09;SMTP/POP3&#xff08;郵件&#xff09;DNS&#xff08;域名解析…

【Redis】hash哈希,List列表

目錄 一. hash哈希 1.1.常用命令 1.1.1.HSET 1.1.2.HGET 1.1.3.HEXISTS 1.1.4.HDEL 1.1.5.HKEYS 1.1.6.HVALS 1.1.7.HGETALL 1.1.8.HMGET 1.1.9.HLEN 1.1.10.HSETNX 1.1.11.HINCRBY 1.1.12.HINCRBYFLOAT 1.2. 內部編碼 1.3. 使用場景 1.4…

MySQL相關概念和易錯知識點(4)(分組查詢、連接查詢、合并查詢、子查詢)

目錄1.分組查詢&#xff08;1&#xff09;聚合函數&#xff08;2&#xff09;group by子句&#xff08;3&#xff09;having2.連接查詢&#xff08;1&#xff09;內連接&#xff08;笛卡爾積&#xff09;&#xff08;2&#xff09;外連接&#xff08;3&#xff09;內外連接的區…

【Python 高頻 API 速學 ①】

一、為什么先學它們&#xff1f; 在真實代碼里&#xff0c;90 % 的 bug 都源于「拿到的是 A 類型&#xff0c;卻當成 B 類型用」。 把「不確定」變成「確定」——這就是類型轉換三兄弟的核心價值。二、三兄弟速覽函數一句話定位常見輸入失敗會怎樣int(x)把 x 變成整數‘42’, 3…

FFmpeg 視頻旋轉信息處理:3.4 vs 7.0.2

1. 概述 FFmpeg 在處理視頻旋轉信息方面經歷了重要的架構變化。本文檔詳細對比了 FFmpeg 3.4 和 7.0.2 在封裝&#xff08;muxing&#xff09;和解封裝&#xff08;demuxing&#xff09;視頻旋轉信息時的差異&#xff0c;并提供兼容性解決方案。文檔內容由Claude Sonnet 4輔助撰…

《Resolving tissue complexity by multimodal spatial omics modeling with MISO》

概念多模態空間組學&#xff1a;簡單來說&#xff0c;就是同時研究生物組織里的多種分子信息&#xff08;比如基因表達、蛋白質、代謝物、表觀遺傳標記等&#xff09;&#xff0c;而且這些信息還帶有空間位置。MISO&#xff08;MultI-modal Spatial Omics&#xff09;是這篇論文…

三階段提交(3PC)協議的全面解析:理論、機制與實踐局限性

第一部分&#xff1a;非阻塞提交的起源&#xff1a;從兩階段提交&#xff08;2PC&#xff09;的缺陷到三階段提交&#xff08;3PC&#xff09;的構想在分布式計算領域&#xff0c;確保跨多個獨立節點執行的事務的完整性是一項至關重要的挑戰。這些節點或站點可能在地理上分散&a…

衰減器的計算

pi型衰減器&#xff0c;如下圖所示。 它適用于輸入輸出阻抗匹配的情況下&#xff0c;還能進行衰減。 不過當輸入輸出阻抗不匹配時&#xff0c;2個R1也會不相等。 已知特性阻抗Z0&#xff0c;衰減比AVin/Vout&#xff0c;怎么計算R1、R2&#xff1f; 1、電阻分壓。 Vout Vi…

Day02 員工管理,分類管理

新增員工需求分析和設計產品原型&#xff1a;接口設計&#xff1a;本項目約定&#xff1a;管理端發出的請求&#xff0c;統一使用 /admin 作為前綴用戶端發出的請求&#xff0c;統一使用 /user 作為前綴數據庫表設計&#xff1a;代碼開發根據新增員工接口設計對應的 DTO&#x…

[SC]SystemC 常見的編譯/語法錯誤與解法(三)

SystemC 常見的編譯/語法錯誤與解法(三) 摘要:下面按“現象/編譯信息 → 成因 → 解決方案”的結構,歸納 SystemC 建模在 SoC 驗證中常見的“編譯期/語法層面”問題,并補充如何根據編譯信息快速定位與如何在流程上避免這些問題。 一、SystemC 常見的編譯/語法錯誤與…

06-docker容器常用命令

文章目錄一.docker容器相關指令概述二.生產環境中常用的 docker容器相關指令1.創建容器(create)2.查看已創建的容器(ps&#xff0c;ls&#xff0c;list)3.運行一個已創建的容器(start)4.停止一個正在運行的容器(stop)5.重啟容器(restart)6.創建并啟動一個容器(run&#xff0c;等…

Xiphos Q8 攝像頭板 高性能圖像處理板

我們的高性能圖像處理板設計用于與具有兩個 Camera Link 接口&#xff08;2x Base 或 1x Medium&#xff09;的 Q8 混合處理器卡配合使用。接口&#xff1a; 2個Camera Link接口 4個SpaceWire接口 4個USB 2.0主端口 串行接口和 GPIO 多個 Vcc 輸出&#xff08;5.0、3.3 和 1.8V…