Share via


雙螢幕版面配置程式庫

重要

本文說明 公開預覽 版的功能和指引,在正式推出之前可能會大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。

這些程式庫包含一組檢視、版面配置、協助程式函式等等,可協助 Android 開發人員建立可折迭裝置的應用程式。

當您將建立和處理所有螢幕模式的責任留給我們的元件時,您的主要焦點就是建立絕佳的應用程式。

單元

  • 底部導覽 - 包含具有雙螢幕行為的自訂 BottomNavigationView。

    • BottomNavigationView 提供了在左側或右側螢幕上移動 BottomNavigationView 的功能。
  • FragmentsHandler - 包含用於處理不同螢幕模式片段的程式碼。

    • 當活動轉換為雙螢幕或單一螢幕時,FragmentManagerStateHandler 提供了還原特定螢幕模式片段的功能。
  • 版面配置 - 包含可協助您為雙螢幕裝置建立 UI 的版面配置。

    • FoldableLayout 會建立 SingleScreenDualScreen 容器,以保存您的 UI。
    • FoldableFrameLayout 提供跨越子檢視,或將其移至左側或右側螢幕的功能。
  • RecyclerView - 包含具有雙螢幕行為的自訂 RecyclerView.ItemDecoration 和 LayoutManager 類別。

    • 當應用程式處於跨距模式時,FoldableItemDecoration 新增儲存格的間距以覆蓋裝置的轉軸。 這應該與 一 FoldableLayoutManager 起使用。
    • FoldableLayoutManagerLinearLayoutManager當裝置處於單螢幕模式,以及 GridLayoutManager 裝置處於跨螢幕模式時,會提供 。
    • 當應用程式處於跨距模式時,FoldableStaggeredItemDecoration 新增儲存格的間距以覆蓋裝置的轉軸。 這應該與 一 FoldableStaggeredLayoutManager 起使用。
    • FoldableStaggeredLayoutManagerLinearLayoutManager當裝置處於單螢幕模式,以及 StaggeredGridLayoutManager 裝置處於跨螢幕模式時,會提供 。
  • 索引標籤 - 包含具有雙螢幕行為的自訂 TabLayout 類別。

    • TabLayout 可以偵測可折迭的功能,並提供在左側或右邊排列其索引標籤的選項。
  • 可折迭流覽元件 - 根據 Google 導覽元件,此元件包含一組可實作雙螢幕瀏覽模式的程式庫。

  • 內嵌列 - FrameLayout 自訂,可用來作為 Snackbar 容器,以便將它放置在可折迭的裝置上。

正在宣告相依性

  1. 請確定您在最上層build.gradle檔案中有mavenCentral () 存放庫:

    allprojects {
        repositories {
            google()
            mavenCentral()
         }
    }
    
  2. 將您需要的相依性新增至模組層級 build.gradle 檔案, (目前版本可能與此處所顯示的內容不同) :

    底部導覽

    implementation "com.microsoft.device.dualscreen:bottomnavigation:1.0.0-beta4"
    

    片段處理常式

    implementation "com.microsoft.device.dualscreen:fragmentshandler:1.0.0-beta5"
    

    版面配置

    implementation "com.microsoft.device.dualscreen:layouts:1.0.0-beta8"
    

    索引標籤

    implementation "com.microsoft.device.dualscreen:tabs:1.0.0-beta4"
    

    RecyclerView

    implementation "com.microsoft.device.dualscreen:recyclerview:1.0.0-beta6"
    

    一節節

    implementation "com.microsoft.device.dualscreen:snackbar:1.0.0-alpha2"
    

    可折迭流覽元件

    def nav_version = "1.0.0-alpha3"
    
    // Java language implementation
    implementation "com.microsoft.device.dualscreen:navigation-fragment:$nav_version"
    implementation "com.microsoft.device.dualscreen:navigation-ui:$nav_version" 
    
    // Kotlin
    implementation "com.microsoft.device.dualscreen:navigation-fragment-ktx:$nav_version"
    implementation "com.microsoft.device.dualscreen:navigation-ui-ktx:$nav_version"
    

已被取代的模組

重要

這些版面配置的初始版本已封裝在單一程式庫 com.microsoft.device:dualscreen-layout

此程式庫已被取代。 建議您針對您需要的控制項使用上述個別程式庫。

  • ScreenManager (已被取代) - 包含元件為雙螢幕裝置開發所需的核心類別。 您也可以直接在程式碼中使用這些核心。

    • 使用 ScreenManagerProvider 取得 SurfaceDuoScreenManager 的單一執行個體。
    • 使用 SurfaceDuoScreenManager 註冊接聽程式,以便在螢幕模式變更時收到通知。
    • 使用 ScreenInfoProvider 取得 ScreenInfo 的執行個體。
    • 根據螢幕模式,使用 ScreenInfo 來取得不同的螢幕資訊。

    如果您想要選擇使用顯示幕蔽 API 的版本,請將下列這一行新增至您的 gradle 檔案。

    implementation "com.microsoft.device.dualscreen:screenmanager-displaymask:1.0.0-beta4"
    

    或者,如果您想要選擇使用視窗管理員 API 的版本,請新增下列這一行。

    implementation "com.microsoft.device.dualscreen:screenmanager-windowmanager:1.0.0-beta4"