頁面結構:頂部搜索框 → 大圖 → 導航欄 → 多個同結構 GridView。期望交互:
Google 官方 Material Design 元件庫提供完整支援,無需從零自寫滾動邏輯。
<CoordinatorLayout>
<AppBarLayout
android:id="@+id/appBar"
android:fitsSystemWindows="true">
<!-- 搜索框:固定頂部 -->
<Toolbar
android:id="@+id/searchBar"
app:layout_scrollFlags="scroll|enterAlways|snap" />
<!-- 大圖:可折疊 -->
<ImageView
android:id="@+id/bigImage"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed"
app:layout_collapseMode="parallax" />
<!-- 導航欄:吸頂 -->
<com.google.android.material.tabs.TabLayout
android:id="@+id/navTabs"
app:layout_scrollFlags="scroll|enterAlways"
app:layout_collapseMode="pin" />
</AppBarLayout>
<!-- 內容區:ViewPager2 + Fragment(GridView) -->
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</CoordinatorLayout>
| 屬性 | 作用 |
|---|---|
layout_scrollFlags | 控制元件隨滾動如何進出視野:scroll(跟隨)、enterAlways(向下滾即顯示)、snap(防止卡在半途)、enterAlwaysCollapsed(最小高度展開) |
layout_collapseMode | pin 吸頂固定、parallax 視差滾動 |
layout_behavior | 內容區綁定 AppBar 滾動行為,實現聯動 |
完整實現範例可參考博客:Android CoordinatorLayout 吸頂導航+折疊圖片+分頁載入完整實戰(請替換為實際可用連結)。