入手する使ってみる初めてのアプリを作成することから始めてみましょう。コースを活用して理解を深めるほか、ご自身でアプリ開発を習得することもできます。↗️デバイスごとに拡張するスマートフォン、タブレット、スマートウォッチなど、さまざまなデバイスでシームレスなエクスペリエンスをユーザーに提供するアプリを作成します。独自の規範となるガイダンスに沿って、ユースケース向けにビルドする方法を学習します。アプリ最新情報を確認する年間を通して最新リリースのお知らせをお届けします。プログラムにご参加いただき、ご意見をお寄せください。設計を今すぐ始めましょう。インターフェースをデザインします。TVアーキテクチャ堅牢かつテストと保守が容易なアプリのロジックとサービスを設計します。ストアのガイドラインに沿って、アプリの品質をプランニングします。アプリを作成できます。必要な機能のサンプルとドキュメントを入手します。使用してアプリを作成、ビルドするか、独自のパイプラインを作成します。ファクタ向けのコードを記述する。デバイスの接続とデータの共有。ドキュメントを確認します。よって翻訳されました。必要に応じて、コンテンツの保存と分類を行います。多くのアプリでは、アイテムのコレクションを表示する必要があります。これを効率的に行う方法について説明します。次のようにリストを反復処理します。スクロール可能にすることができます。レイアウトを使用するとパフォーマンスの問題が発生します。これは、表示されるかどうかにかかわらず、すべてのアイテムについてコンポーズと配置が行われるためです。コンポーネントのビューポートに表示されるアイテムのみをコンポーズして配置するコンポーネントが複数用意されています。ウィジェットと同じ原則に従います。アイテムを配置してスクロールする方向が異なります。横方向にスクロールするリストを生成します。レイアウトと異なります。ブロックを提供します。コンポーネントはその後、レイアウトとスクロールの位置で必要とされる各アイテムのコンテンツを追加します。ドメイン固有言語の略です。使用するをご覧ください。レイアウト内のアイテムを記述するためのさまざまな関数が用意されています。複数のアイテムを追加します。アイテムのコレクションを追加できる拡張関数も多数あります。例を簡単に移行できます。拡張関数のバリアントも用意されています。リファレンスをご覧ください。コンポーザブルは、アイテムのグリッド表示に対するサポートを提供しています。水平グリッドは横軸でそれと同じように動作します。DSL(LazyGridScope.())を使用します。パラメータは、セルを列または行に配置する方法を制御します。以上に設定し、グリッド形式でアイテムを表示しています。使用するとアイテムの幅を指定でき、グリッドに可能な限り多くの列が収まるようになります。残りの幅は、列の数が計算された後、列間で均等に分配されます。このような適応型のサイズ調整方法は、さまざまな画面サイズでアイテムのセットを表示する場合に特に便利です。必要な列の数が含まれています。デザイン上、特定のアイテムに標準以外のディメンションが必要な場合は、グリッドのサポートを使用してアイテムにカスタム列スパンを指定できます。パラメータを使用します。列の数が固定されていないため、適応型のサイズ調整を使用する場合に特に便利です。次の例は、行スパン全体を指定する方法を示しています。問題に関するフィードバックを送信します。トラッカーをご覧ください。遅延読み込みの要素をずらしたアイテムのグリッドを作成できるコンポーザブルです。垂直千鳥格子は、複数の列にまたがる縦方向にスクロール可能なコンテナにアイテムを表示し、個々のアイテムの高さを異なるものにできます。横軸にさまざまな幅のアイテムが表示されています。グリッドと遅延グリッドの違いは、前者は幅や高さが異なるサイズのアイテムを表示できることです。使用する基本的な例です。固定数の列を設定するには、次のようにします。固定列の遅延型のずらした縦型グリッドの例コンテンツのパディング場合によっては、コンテンツの端にパディングを追加する必要があります。パラメータに渡すことで、パディングをサポートできます。パディングを追加しています。自体に対してでなく、コンテンツに対してであることに注意してください。パディングがそれぞれ追加されます。スペースを追加しています。...}LazyListSnippets.ktグリッドは、垂直方向と水平方向の両方の配置を受け入れます。}}LazyListSnippets.ktアイテムのキーデフォルトでは、各アイテムの状態には、リストまたはグリッド内のアイテムの位置に対応したキーが指定されます。データセットを変更する場合には問題となることがあります。これは、位置を変更したアイテムについて記憶された状態が実質的に失われるためです。シナリオで行内のアイテムの位置を変更すると、ユーザーはその行内でのスクロール位置を失うこととなります。状態を記憶する仕組みの詳細については、状態に関するドキュメントをご覧ください。パラメータにブロックを指定して、各アイテムに安定した一意のキーを指定します。次のように安定したキーを指定することで、データセットの変更時にアイテムの状態を一貫させることができます。並べ替えを正しく処理できるようになります。この状態をアイテムと一緒に移動できるようになります。サポートされている必要があります。サポートされている必要があります。レイアウトにもアイテムの並べ替えで同じ機能を使用できます。修飾子をアイテムのコンテンツに設定するだけです。}}LazyListSnippets.kt必要に応じて、カスタムのアニメーション仕様を指定することもできます。}}LazyListSnippets.kt移動した要素の新しい位置を見つけられるように、アイテムにキーを指定するようにしてください。将来変更、または完全に削除される可能性があります。「固定ヘッダー」パターンは、グループ化されたデータのリストを表示する際に役立ちます。次の例では、「連絡先リスト」が、各連絡先のイニシャルごとにグループ化されています。関数を使用して、次のようにヘッダーのコンテンツを指定します。}}LazyListSnippets.kt上記の「連絡先リスト」の例のように、複数のヘッダーを持つリストを作成するには、次のようにします。レイアウトの変更に反応してリッスンする必要があります。ホイストすることでこのユースケースをサポートします。}}LazyListSnippets.ktシンプルなユースケースでは、通常、アプリで最初に表示されるアイテムに関する情報だけが必要です。プロパティが用意されています。次の例では、ユーザーが最初のアイテムより下にスクロールしたかどうかに基づいてボタンを表示または非表示にしています。使用して不要なコンポジションを最小限に抑えています。詳細については、副作用に関するドキュメントをご覧ください。コンポーザブルを更新する必要があるときは、コンポジションで状態を直接読み取るのが便利ですが、イベントを同じコンポジションで処理する必要がない場合もあります。イベントを送信する場合があります。プロパティを介して提供します。クラスをご覧ください。スクロール位置の制御アプリでスクロール位置に反応するだけでなく、その制御まで行えるとさらに便利です。関数によってこれをサポートします。関数であるため、コルーチン内で呼び出す必要があります。これを行う方法について詳しくは、コルーチンに関するドキュメントをご覧ください。ライブラリを使用すると、アプリでアイテムの多数のリストをサポートし、必要に応じてリストの小さなチャンクを読み込んで表示できます。サポートを提供しています。以降でのみ提供されています。移行する必要があります。あるかどうかをチェックすることで、データの読み込み中にプレースホルダを表示できます。アイテムを指定してください。コンテンツが画面いっぱいに表示されるまで、繰り返し呼び出されて新しいデータを取得します。小さいプレースホルダが指定されている場合(またはプレースホルダがまったく指定されていない場合)、コンテンツが画面いっぱいに表示されず、アプリは多数のページのデータを取得します。レイアウトが意図したとおりに動作するようにするには、考慮すべきヒントがいくつかあります。ピクセルサイズのアイテムを使用しないたとえば、画像などのデータを非同期的に取得し、後からリストのアイテムを埋めるような場合です。レイアウトでは最初の測定ですべてのアイテムがコンポーズされます。レイアウトでは最初に不必要にコンポーズされた他のアイテムがすべて破棄されます。レイアウトでビューポートに実際に収まるアイテムの数を正しく計算できるようにする必要があります。)}LazyListSnippets.ktデータが非同期で読み込まれた後のアイテムのおおよそのサイズがわかっている場合は、プレースホルダを追加するなどして、読み込みの前後でアイテムのサイズが同じになるようにすることをおすすめします。これにより、正しいスクロール位置を維持できます。同じ方向にスクロールできるコンポーネントをネストしないこれは、事前定義されたサイズがないスクロール可能な子を、同じ方向の別のスクロール可能な親内にネストする場合にのみ適用されます。ネストしようとする場合などです。使用して異なるタイプのコンテンツを渡すことで、同じ結果を得ることができます。LazyColumn)をネストするケースは許可されています。}}LazyListSnippets.ktまた、同じ方向のレイアウトを使用していても、ネストされた子に固定のサイズを設定するケースも許可されています。つのアイテムを出力しています。この処理にはいくつか問題があります。つのエンティティとして処理されます。個別にコンポーズすることはできなくなります。つの要素が画面に表示されたら、そのアイテムに対応するすべての要素をコンポーズして測定する必要があります。過剰に使用した場合は、これによりパフォーマンスが低下する可能性があります。レイアウトを使用する意味がなくなります。つのアイテムに複数の要素を配置する有効なユースケースがあります。インデックスを変更することはありません。分割線は小さいため、パフォーマンスに影響はありません。分割線は、前のアイテムが表示されるときに表示される必要があるため、前のアイテムに含めることができます。コンテナのサイズよりも大きくなります。リストにアイテムがあまり含まれていない場合は、デザインで、ビューポートでの配置方法について具体的な要件を設定できます。メソッドを実装するだけです。次に、使用される高さの合計がビューポートの高さよりも低い場合は、フッターが下部に配置されます。リストまたはグリッドに追加することを検討してください。タイプを指定できます。再利用できるのは、同じタイプのアイテム間のみとなります。異なるアイテムの上にコンポーズしようとしなくなります。レイアウトのパフォーマンスを最大限に高めることができます。レイアウトのパフォーマンスを確実に測定できます。レイアウトのスクロールが遅く見えることがあります。パフォーマンスをご覧ください。ライセンスに記載のライセンスに従います。関連会社の商標または登録商標です。