デュアルスクリーンのレイアウト ライブラリ
重要
この記事では、パブリック プレビュー段階であり、一般公開前に大幅に変更される可能性がある機能とガイダンスについて説明します。 本書に記載された情報について、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
。
依存関係の宣言
最上位の build.gradle ファイルに mavenCentral() リポジトリがあることを確認します。
allprojects { repositories { google() mavenCentral() } }
必要な依存関係をモジュールレベル 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"