デュアルスクリーンのレイアウト ライブラリ

重要

この記事では、パブリック プレビュー段階であり、一般公開前に大幅に変更される可能性がある機能とガイダンスについて説明します。 本書に記載された情報について、Microsoft は明示または黙示を問わずいかなる保証をするものでもありません。

これらのライブラリには、Android 開発者が折りたたみ型デバイス用のアプリケーションを作成するのに役立つ、一連のビュー、レイアウト、ヘルパー関数などが含まれています。

すべての画面モードの作成と処理をこれらのコンポーネントにまかせることにより、すばらしいアプリを作成することに集中できます。

モジュール

  • Bottom navigation - デュアルスクリーン動作を備えたカスタムの BottomNavigationView が含まれています。

    • BottomNavigationView により、BottomNavigationView を左または右の画面に移動する機能が提供されます。
  • FragmentsHandler - さまざまな画面モードで Fragments を処理するためのコードが含まれています。

    • FragmentManagerStateHandler では、アクティビティがデュアルまたはシングル スクリーンに移行するときに、画面モード固有のフラグメントを復元することができます。
  • Layouts - デュアルスクリーン デバイス用の UI の作成に役立つレイアウトが含まれています。

    • FoldableLayout は、UI を保持する SingleScreen または DualScreen コンテナーを作成します。
    • FoldableFrameLayout では、複数の子ビューにまたがるようにすることも、左または右の画面にそれらを移動することもできます。
  • RecyclerView - デュアルスクリーン動作を備えたカスタムの RecyclerView.ItemDecoration と LayoutManager クラスが含まれています。

    • FoldableItemDecoration により、アプリケーションがスパン モードの場合に、デバイスのヒンジに対応するためにセルの間隔が追加されます。 これは FoldableLayoutManager とともに使用する必要があります。
    • FoldableLayoutManager では、デバイスがシングルスクリーン モードの場合 LinearLayoutManager が、デバイスがスパン モードの場合 GridLayoutManager が提供されます。
    • FoldableStaggeredItemDecoration により、アプリケーションがスパン モードの場合に、デバイスのヒンジに対応するためにセルの間隔が追加されます。 これは FoldableStaggeredLayoutManager とともに使用する必要があります。
    • FoldableStaggeredLayoutManager では、デバイスがシングルスクリーン モードの場合 LinearLayoutManager が、デバイスがスパン モードの場合 StaggeredGridLayoutManager が提供されます。
  • Tabs - デュアルスクリーン動作を備えたカスタム TabLayout クラスが含まれています。

    • TabLayout を使用すると、折りたたみ可能な機能を検出でき、タブを左側または右側に配置することもできます。
  • 折りたたみナビゲーション コンポーネント -Google ナビゲーション コンポーネントに基づいて、このコンポーネントには、デュアルスクリーン ナビゲーション パターンを実装するライブラリのセットが含まれています。

  • スナックバー - Snackbar が折りたたみ型デバイスに配置するためにコンテナーとして使用できるカスタム FrameLayout

依存関係の宣言

  1. 最上位の build.gradle ファイルに mavenCentral() リポジトリがあることを確認します。

    allprojects {
        repositories {
            google()
            mavenCentral()
         }
    }
    
  2. 必要な依存関係をモジュールレベル build.gradle ファイルに追加します (現在のバージョンは、ここに示されているものとは異なる場合があります)。

    Bottom navigation

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

    Fragments handler

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

    Layouts

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

    Tabs

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

    RecyclerView

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

    SnackbarContainer

    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"
    

非推奨のモジュール

重要

これらのレイアウトの最初のリリースは、1 つのライブラリ com.microsoft.device:dualscreen-layout にパッケージ化されていました。

このライブラリは非推奨となりました。 必要なコントロールに対応する上記の個別のライブラリを使用することをお勧めします。

  • ScreenManager (非推奨) - デュアルスクリーン デバイス用に開発するコンポーネントで必要とされるコア クラスが含まれています。 これらは、コード内で直接使用することもできます。

    • SurfaceDuoScreenManager の単一インスタンスを取得するには、ScreenManagerProvider を使用します。
    • 画面モードが変更されたときに通知されるようにリスナーを登録するには、SurfaceDuoScreenManager を使用します。
    • ScreenInfo のインスタンスを取得するには、ScreenInfoProvider を使用します。
    • 画面モードによって異なる画面情報を取得するには、ScreenInfo を使用します。

    Display Mask API を使用するバージョンを選択する場合は、gradle ファイルに次の行を追加します。

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

    または、Window Manager API を使用するバージョンを選択する場合は、次の行を追加します。

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