視差捲動是一種技術,可讓背景內容和前景內容以不同速度捲動。您可以運用這項技術改善應用程式的 UI,在使用者捲動畫面時提供更動態的體驗。
結果
版本相容性
這項實作作業需要將專案 minSDK 設為 API 級別 21 以上。
依附元件
建立視差效果
如要實現視差效果,請將捲動可組合項的捲動值分數套用至需要視差效果的可組合項。下列程式碼片段會採用兩個巢狀視覺元素 (圖片和文字區塊),並以不同速度朝相同方向捲動這些元素:
@Composable fun ParallaxEffect() { fun Modifier.parallaxLayoutModifier(scrollState: ScrollState, rate: Int) = layout { measurable, constraints -> val placeable = measurable.measure(constraints) val height = if (rate > 0) scrollState.value / rate else scrollState.value layout(placeable.width, placeable.height) { placeable.place(0, height) } } val scrollState = rememberScrollState() Column( modifier = Modifier .fillMaxWidth() .verticalScroll(scrollState), ) { Image( painterResource(id = R.drawable.cupcake), contentDescription = "Android logo", contentScale = ContentScale.Fit, // Reduce scrolling rate by half. modifier = Modifier.parallaxLayoutModifier(scrollState, 2) ) Text( text = stringResource(R.string.detail_placeholder), modifier = Modifier .background(Color.White) .padding(horizontal = 8.dp), ) } }
程式碼重點
- 建立自訂
layout修飾符,調整可組合項目的捲動速率。 Image的捲動速度比Text慢,因此當這兩個可組合函式以不同速度垂直平移時,就會產生視差效果。
包含本指南的集合
本指南是精選快速指南系列的一部分,涵蓋更廣泛的 Android 開發目標:
顯示清單或格線
清單和格線可讓應用程式以賞心悅目的形式顯示集合,方便使用者瀏覽。
顯示圖片
瞭解如何運用明亮吸睛的視覺元素,為 Android 應用程式打造美觀的外觀和風格。
顯示文字
文字是任何 UI 的核心元素。瞭解在應用程式中呈現文字的不同方式,提供令人愉悅的使用者體驗。
如有問題或想提供意見
前往常見問題頁面,瞭解快速指南或與我們聯絡,分享您的想法。