Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

Compose UI

Jetpack Compose ライブラリを操作します。
最新の更新 現在の安定版リリース 次のリリース候補 ベータ版リリース アルファ版リリース
2020 年 9 月 2 日 - - - 1.0.0-alpha02

構造

Compose は、androidx 内の 7 つの Maven Group ID を組み合わせたものです。各グループには対象とする機能のサブセットが含まれ、それぞれに固有のリリースノートがあります。

次の表に、各グループの説明と、それぞれのリリースノートのリンクを示します。

グループ説明
compose形状とデータの依存関係を記述するコンポーズ可能な関数を使用して、UI をプログラムで定義します。
compose.animationJetpack Compose アプリ内でアニメーションを作成して、ユーザー エクスペリエンスを拡充します。
compose.foundationすぐに使用できるビルディング ブロックで Jetpack Compose アプリを作成し、独自のデザイン システム要素を構築する基盤を拡張します。
compose.materialすぐに使用できるマテリアル デザイン コンポーネントで Jetpack Compose UI を構築します。Compose の上位レベルのエントリ ポイントであり、www.material.io のガイドラインと適合するコンポーネントを提供するように設計されています。
compose.runtimeCompose のプログラミング モデルと状態管理の基本ビルディング ブロックと、Compose コンパイラ プラグインがターゲットとするコアランタイム。
compose.uiレイアウト、描画、入力など、デバイスの操作に必要な Compose UI の基本コンポーネント。
uiJetpack Compose ライブラリを操作します。

依存関係の宣言

Compose UI への依存関係を追加するには、プロジェクトに Google Maven リポジトリを追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

dependencies {
    implementation "androidx.ui:ui-tooling:1.0.0-alpha02"
    implementation "androidx.ui:ui-test:1.0.0-alpha02"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerVersion "1.4.0"
        kotlinCompilerExtensionVersion "1.0.0-alpha02"
    }
}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
    kotlinOptions {
        jvmTarget = "1.8"
        freeCompilerArgs += ["-Xallow-jvm-ir-dependencies", "-Xskip-prerelease-check"]
    }
}

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.0.0

UI バージョン 1.0.0-alpha02

2020 年 9 月 2 日

androidx.ui:ui-test:1.0.0-alpha02androidx.ui:ui-tooling:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください

API の変更

  • TestUiDispatcher は試験運用となりました(Iae99db/161247083
  • Duration がインライン クラスになりました(I565eb
  • 特定のクロックのフレームを待機しているかどうかを確認する ManualFrameClock.hasAwaiters が追加されました。runWithManualClock は ManualFrameClock を必要とするテスト実行時に runBlocking に代わるものです。TestUiDispatcher.Main はテストのメイン UI ディスパッチャへのアクセスを容易にします。

    例:

    @Test
    fun myTest() = runWithManualClock { clock ->
        // set some compose content
        withContext(TestUiDispatcher.Main) {
            clock.advanceClock(1000L)
        }
        if (clock.hasAwaiters) {
            println("The clock has awaiters")
        } else {
            println("The clock has no more awaiters")
        }
    }
    

    I0a85bb/161247083

バグの修正

  • コンポーズ可能な関数の呼び出し規則が変更されました。これは互換性を破るバイナリの変更です。このバージョンの Compose コンパイラ プラグインで動作するには、すべてのライブラリを再コンパイルする必要があります。

    変更された API は明示的なオプトインがあるコンパイラ API だけであるため、ソースレベルで互換性を破る変更はありません。(I7afd2b/158123185

バージョン 1.0.0-alpha01

2020 年 8 月 26 日

androidx.ui:ui-test:1.0.0-alpha01androidx.ui:ui-tooling:1.0.0-alpha01 がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください

バージョン 0.1.0-dev

バージョン 0.1.0-dev17

2020 年 8 月 19 日

androidx.ui:ui-test:0.1.0-dev17androidx.ui:ui-tooling:0.1.0-dev17 がリリースされました。バージョン 0.1.0-dev17 に含まれる commit については、こちらをご覧ください

API の変更

  • Offset がインライン クラスになりました。(Iaec70
  • IntSize がインライン クラスになりました。(I2bf42
  • AlertDialog はボタンに FlowRow を使用するようになりました。(I00ec1b/161809319b/143682374
  • Class<T : ComponentActivity> をパラメータとして受け取る createAndroidComposeRule 関数を追加して、特定のアクティビティ クラスに基づく AndroidComposeRule を簡単に作成できるようにしました。(I40da4

バグの修正

  • アルファ版リリースの PointerEventPass の名前を更新しました。(Ifda6f
  • PlacementScope.placeAbsolute() の名前が PlacementScope.place() に変更され、以前の PlacementScope.place() の名前が PlacementScope.placeRelative() に変更されました。その結果、PlacementScope.place() メソッドは、右から左(RTL)へのコンテキストで、自動的に位置をミラーリングしなくなります。必要な場合は、代わりに PlacementScope.placeRelative() を使用してください。(I873acb/162916675
  • ポインタ入力コードの編成をリファクタリングしました。(Ie3f45
  • PxBounds のサポートを終了して Rect に置き換えました。PxBounds のすべての使用を更新して Rect に置き換え、移行に役立つ適切なサポート終了およびアノテーションへの置き換えを追加しました。(I37038b/162627058
  • 状態を保存する何かが for ループ内で使用されたときにクラッシュする問題が修正されました。現在は savedInstanceState() 内で同じキーを持つことが可能になり、UiSavedStateRegistry の API がこの新しい要件に合わせて調整されました。(I4ab76b/160042650b/156853976b/159026663b/154920561
  • 明確化のため、state { ... } composable のサポートを終了し、remember { mutableStateOf(...) } の明示的な呼び出しに置き換えました。これにより、状態管理の API サーフェス全般とコンセプトの数が縮小され、クラス プロパティ委任の by mutableStateOf() パターンと一致するようになります。(Ia5727
  • Row と Column に spacedBy Arrangement が追加され、間隔を固定してレイアウトの子を配置できるようになりました。また、aligned Arrangement が追加され、Alignment に従って、Row と Column でレイアウトの子を互いに隣り合わせに配置してアライメントできるようになりました。元の Arrangement.Vertical#arrange および Arrangement.Horizontal#arrange メソッドはサポートが終了しました。将来、カスタム Arrangement の書き込みはサポートされなくなります。(I6733db/161985975
  • Modifier.drawBorder のサポートが終了しました。代わりに Modifier.border を使用してください。Border データクラスは BorderStroke に置き換えられました。(I4257db/158160576

バージョン 0.1.0-dev16

2020 年 8 月 5 日

androidx.ui:ui-test:0.1.0-dev16androidx.ui:ui-tooling:0.1.0-dev16 がリリースされました。バージョン 0.1.0-dev16 に含まれる commit については、こちらをご覧ください

ほとんどの Jetpack Compose パッケージは、以下の表に示すようにリファクタリングされました。

Jetpack Compose パッケージのリファクタリング

元のパッケージ名 新しいパッケージ名
androidx.animation androidx.compose.animation.core
androidx.ui.autofill androidx.compose.ui.autofill
androidx.compose androidx.compose.runtime
androidx.compose.dispatch androidx.compose.runtime.dispatch
androidx.ui.animation androidx.compose.animation
androidx.ui.core androidx.compose.ui
androidx.compose.ui.unit
androidx.compose.ui.graphics
androidx.ui.foundation androidx.compose.foundation
androidx.ui.geometry androidx.compose.ui.geometry
androidx.ui.graphics androidx.compose.ui.graphics
androidx.ui.input androidx.compose.ui.text.input
androidx.ui.intl androidx.compose.ui.text.intl
androidx.ui.layout androidx.compose.foundation.layout
androidx.ui.livedata androidx.compose.runtime.livedata
androidx.ui.material androidx.compose.material
androidx.ui.material.icons androidx.compose.material.icons
androidx.ui.rxjava2 androidx.compose.runtime.rxjava2
androidx.ui.savedinstancestate androidx.compose.runtime.savedinstancestate
androidx.ui.node androidx.compose.ui.node
androidx.compose.ui.input.pointer
androidx.ui.platform androidx.compose.ui.platform
androidx.ui.res androidx.compose.ui.res
androidx.ui.semantics androidx.compose.ui.semantics
androidx.ui.testutils androidx.compose.ui.input.pointer
androidx.ui.text androidx.compose.foundation.text
androidx.compose.ui.text
androidx.ui.text.platform androidx.compose.ui.text.android
androidx.compose.ui.platform
androidx.ui.unit androidx.compose.ui.unit
androidx.ui.util androidx.compose.ui.util
androidx.ui.viewinterop androidx.compose.ui.viewinterop
androidx.ui.viewmodel androidx.compose.ui.viewinterop
まだリファクタリングされていないパッケージ(変更なし)
androidx.ui.test
androidx.ui.tooling

Android Studio を使用している場合は、import ステートメントを下記のコード スニペットに置き換えて、Android Studio の [Optimize Imports] ボタンを使用できます。Android Studio でサポートされないケースについては、上記のパッケージ リストを参照してください。

  import androidx.compose.runtime.*
  import androidx.compose.animation.*
  import androidx.compose.animation.core.*
  import androidx.compose.foundation.*
  import androidx.compose.foundation.gestures.*
  import androidx.compose.foundation.layout.*
  import androidx.compose.foundation.lazy.*
  import androidx.compose.foundation.shape.*
  import androidx.compose.material.*
  import androidx.compose.material.icons.*
  import androidx.compose.material.icons.filled.*
  import androidx.compose.ui.*
  import androidx.compose.ui.geometry.*
  import androidx.compose.ui.draw.*
  import androidx.compose.ui.graphics.*
  import androidx.compose.ui.graphics.drawscope.*
  import androidx.compose.ui.graphics.painter.*
  import androidx.compose.ui.graphics.vector.*
  import androidx.compose.ui.layout.*
  import androidx.compose.ui.platform.*
  import androidx.compose.ui.res.*
  import androidx.compose.ui.text.*
  import androidx.compose.ui.text.font.*
  import androidx.compose.ui.text.style.*
  import androidx.compose.ui.unit.*
  import androidx.compose.ui.util.*
  import androidx.compose.ui.viewinterop.*
  import androidx.ui.tooling.preview.*

API の変更

  • KeyEvent2 が KeyEvent に置き換えられました。(I2d770b/162097585
  • SemanticsNodeInteraction.performPartialGesture を削除しました。代わりに SemanticsNodeInteraction.performGesture を使用してください(Id9b62
  • SemanticsNodeInteraction.getBoundsInRoot() の名前を SemanticsNodeInteraction.getUnclippedBoundsInRoot() に変更しました。(Icafdfb/161336532
  • AndroidComposeTestRule の名前を createAndroidComposeRule に変更しました。(I70aaf
  • isFocused() および isNotFocused() SemanticsMatcher を追加しました。(I0b760
  • テストで使用すべきでない BaseGestureScope.globalBounds を削除しました。代わりに、操作したいノードのローカル座標を使用してください。(Ie9b08
  • Inspector API の精度を改善しました。(I3cfbf

バグの修正

  • ダイアログを UI に移動しました。(I47fa6
  • 右から左(RTL)をサポートする API が更新されました。レイアウト方向の読み取りと変更に使用できる LayoutDirectionAmbient が追加されました。Modifier.rtl と Modifier.ltr が削除されました。(I080b3
  • transitionDefinition にはタイプ T を明示的に指定する必要があります。(I1aded
  • Modifier.plus のサポートが終了しました。代わりに Modifier.then を使用してください。「then」を使用すると、より順序付けが明確になります。また、チェーンを破壊して読みにくくする「Modifier.padding().background() + anotherModifier」の入力が防止されます。(Iedd58b/161529964
  • Compose 階層のルートを基準とする SemanticsNode の相対位置を取得する SemanticsNode.positionInRoot を追加しました。(Icdf26b/161336532
  • TextLayoutResult を取得するためのユーザー補助アクションを追加しました。(I9d6e6
  • material の FilledTextField を TextField に、foundation の TextField を BaseTextField に名前変更し、シンプルで望ましい API を簡単に見つけて使用できるようにしました。(Ia6242b/155482676
  • Modifier.drawBackground の名前が Modifier.background に変更されました。(I13677
  • ColorPalette の名前を Colors に変更しました。これは、Material カラーシステムへのマッピングを改善し、「汎用的」なテーマ オブジェクトとしての ColorPalette と Material カラーシステムの特定の実装の混同を避けるためです。また、lightColorPalette と darkColorPalette の名前をそれぞれ lightColors と darkColors に変更しました。(I9e976b/161812111
  • foundation.shape.corner パッケージが foundation.share にフラット化されました。(I46491b/161887429
  • RowColumn をインライン関数にしました。これにより、使用する際のオーバーヘッドが大幅に削減されます。(I75c10

バージョン 0.1.0-dev15

2020 年 7 月 22 日

androidx.ui:ui-test:0.1.0-dev15androidx.ui:ui-tooling:0.1.0-dev15 がリリースされました。バージョン 0.1.0-dev15 に含まれる commit については、こちらをご覧ください

Jetpack Compose のほとんどのアーティファクトは、以下の表に示すようにリファクタリングされています。

このリリースでは、アーティファクト名のみがリファクタリングされたことにご注意ください。将来のリリースでは、新しいアーティファクト名に合わせてパッケージ名が更新されます。

Jetpack Compose アーティファクトのリファクタリング

古いアーティファクト 新しいアーティファクト
androidx.compose:compose-dispatch androidx.compose.runtime:runtime-dispatch
androidx.compose:compose-runtime androidx.compose.runtime:runtime
androidx.ui:ui-animation androidx.compose.animation:animation
androidx.ui:ui-animation-core androidx.compose.animation:animation-core
androidx.ui:ui-core androidx.compose.ui:ui
androidx.ui:ui-foundation androidx.compose.foundation:foundation
androidx.ui:ui-geometry androidx.compose.ui:ui-geometry
androidx.ui:ui-graphics androidx.compose.ui:ui-graphics
androidx.ui:ui-layout androidx.compose.foundation:foundation-layout
androidx.ui:ui-livedata androidx.compose.runtime:runtime-livedata
androidx.ui:ui-material androidx.compose.material:material
androidx.ui:ui-material-icons-core androidx.compose.material:material-icons-core
androidx.ui:ui-material-icons-extended androidx.compose.material:material-icons-extended
androidx.ui:ui-rxjava2 androidx.compose.runtime:runtime-rxjava2
androidx.ui:ui-saved-instance-state androidx.compose.runtime:runtime-saved-instance-state
androidx.ui:ui-text androidx.compose.foundation:foundation-text
androidx.ui:ui-text-android androidx.compose.ui:ui-text-android
androidx.ui:ui-text-core androidx.compose.ui:ui-text
androidx.ui:ui-unit androidx.compose.ui:ui-unit
androidx.ui:ui-util androidx.compose.ui:ui-util
まだリファクタリングされていないアーティファクト(変更なし)
androidx.compose:compose-compiler
androidx.ui:ui-test
androidx.ui:ui-tooling

依存関係の更新

  • 0.1.0-dev15 バージョンの Compose を使用するには、上記の依存関係の宣言で示されている新しいコード スニペットに従って、依存関係を更新する必要があります。

API の変更

  • runOnIdleCompose の名前が runOnIdle に変更されました。(I83607
  • いくつかのテスト API の名前がより直感的にわかりやすいものになりました。findXYZ API という名前はすべて onNodeXYZ に変更されました。doXYZ API という名前はすべて performXYZ に変更されました。(I7f164
  • アプリのセマンティクスを単純なリストではなく階層として出力する API。また、SemanticsMatcher.any を削除しました。セマンティクスを出力する場合は、代わりに findRoot().printToString() を使用してください。(I866b5
  • KeyEvent のサポートが終了し、KeyEvent2 に置き換えられました。(I68730
  • 新しいオプションのフラグ useUnmergedTree がテスト ファインダーに追加されました。(I2ce48
  • 古いサイズテスト API を削除しました。(Iba0a0
  • レイアウトからの整数ピクセル境界を表す IntBounds ユニットクラスが追加されました。PopupPositionProvider の API が更新され、これを使用するようになりました。(I0d8d0b/159596546
  • @Preview に新しいデバイス パラメータが追加されました。(I39049

バグの修正

  • VerticalScroller と HoriziontalScroller のサポートが終了しました。Column / Row の動作とパラメータの組み込みエクスペリエンスをサポートするには、ScrollableColumn と ScrollableRow を使用するか、独自の要素で Modifier.verticalScroll と Modifier.horizontalScroll を使用してください。同様に、ScrollerPosition のサポートが終了し、ScrollState に置き換えられました。(I400ceb/157225838b/149460415b/154105299
  • 単一値のセマンティクス プロパティで呼び出しスタイルが使用されるようになりました。たとえば、「semantics { hidden = true }」は、現在は「semantics { hidden() }」として記述されます。(Ic1afdb/145951226b/145955412
  • キー入力関連 API に試験運用版 API アノテーションを追加しました。(I53c0a
  • Transition API が変更され、子に TransitionState を渡すのでなく、TransitionState を返すようになりました。これにより、この API と animate() API の一貫性が向上します。(I24e38
  • Applier には、コンポジションを破棄するための clear() メソッドが必要になりました。(Ibe697
  • LayoutNode API が試験運用版になりました。(I4f2e9
  • ポップアップ、ダイアログ、メニューがコンテキストに応じた MaterialTheme を継承するようになりました。(Ia3665b/156527485
  • アニメーションのタイミングをサポートする最上位レベルの withFrameNanos 関数を追加しました。(Ie34c5
  • Layout() 関数の測定ブロックからレイアウト方向のパラメータを削除しました。ただし、測定スコープ オブジェクトを介してコールバック内でレイアウト方向を使用できます。(Ic7d9d
  • 静的アニメーション仕様のコンセプトを明確化するため、最上位レベルの API で AnimationBuilder ではなく AnimationSpec を使用するようになりました。tween や spring などの AnimationSpec の作成に関するラムダ要件を削除することにより、遷移 DSL を改善しました。代わりに、それらはコンストラクタのパラメータを直接受け取ります。AnimationSpec の使いやすさを全面的に改善し、ビルダーに依存するのではなくコンストラクタを利用するようにしました。KeyFrames と Tween の期間と遅延を Int に変更しました。これにより、(Long と Int の両方をサポートするための)不要な型キャストとメソッドのオーバーロードがなくなります。(Ica0b4
  • メインスレッドで同期をトリガーしようとすると、IllegalStateException がスローされるようになりました。たとえば次のような場合、この例外がスローされます。

    runOnIdleCompose {
        findByTag(\"tag\").assertExists()
    }
    

    このような場合は、runOnIdleCompose の呼び出しを削除します。

    findByTag(\"tag\").assertExists()
    

    Idced7b/159224666

  • TextDecoration.plus 演算子を追加しました。(I0ad1a

  • Button のコンテンツ スロットが Row として動作するようになりました(テキスト付きのアイコンが必要な場合に有用です。Button の記述方法に関するサンプルをご覧ください)。(I0ff10b/158677863

バージョン 0.1.0-dev14

2020 年 6 月 24 日

androidx.ui:ui-*:0.1.0-dev14 がリリースされました。バージョン 0.1.0-dev14 に含まれる commit については、こちらをご覧ください

API の変更

  • IntPx の使用が Int に変更されました。IntPxPositionIntOffset に変更されました。IntPxSizeIntSize に変更されました。(Ib7b44
  • サイズ情報を示す際に使用するクラスの数を整理統合するために、PxSize クラスではなく、Size クラスを使用するように標準化しました。これにより、インライン クラスは、long 値を利用して、float 値として示される幅と高さを示す 2 つの float 値をパックできるようになります。(Ic0191
  • 位置情報を示す際に使用するクラスの数を整理統合するために、PxPosition クラスではなく、Offset クラスを使用するように標準化しました。これにより、インライン クラスは、long 値を利用して、float 値として示される x オフセットと y オフセットを示す 2 つの float 値をパックできるようになります。(I3ad98
  • ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(I086f4
  • Placeable#get(AlignmentLine) から返されるアライメント ラインの Int 位置が非 null になりました。クエリされたアライメント ラインがなかった場合、AlignmentLine.Unspecified が返されるようになります。(I896c5b/158134875
  • AndroidView composable に修飾子パラメータが追加されました。(I48a88b/158746303
  • Semantics() のサポートが終了しました。代わりに Modifier.semantics() を使用してください。(I72407b/158841414
  • viewModel() composable を追加しました。アクティビティ内やフラグメント内と同様に、ViewModel の作成や、作成済み ViewModel の取得を行うことができます。(I5fdd1
  • ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(I97a5a
  • TestTag のサポートが終了しました。代わりに Modifier.testTag を使用してください。(If5110b/157173105
  • ParentDataModifier#modifyParentData のデフォルト no-op 実装が削除されました(そもそもインターフェースを実装しないことと同義でした)。(I0deaa
  • 以前にサポートが終了していた ScaleFit が削除されました。代わりに ContentScale を使用してください。(Ifbc5b
  • AdapterList の名前が LazyColumnItems に変更されました。(6decc02
  • LazyRowItems が追加されました(LazyColumnItems の水平方向スクロール版)。(Ibbcf7
  • androidx.ui.foundation.shape.RectangleShape が削除されました。代わりに androidx.ui.graphics.RectangleShape を使用してください。(I94939b/154507984
  • ピンチズーム機能用の Modifier.zoomable が追加されました。(Id5d63
  • Toggleable コンポーネントのサポートが終了しました。代わりに Modifier.toggleable を使用してください。(I35220b/157642842
  • MutuallyExclusiveSetItem のサポートが終了しました。代わりに Modifier.selectable を使用してください。(I02b47b/157642842
  • fontWeight パラメータが Text に追加されました。これまでは誤って追加されていませんでした。(I56937
  • ConstraintLayout ガイドラインを作成する際の percent パラメータの名前が fraction に変更されました。(Ida2db
  • ConstraintLayout 境界線のマージンのサポートが追加されました。(I47ffe
  • ConstraintLayout 内の RTL サポートが修正されました。RTL 非認識型 API が追加されました。(I3b1c7
  • ConstraintLayout 用の新しい DSL が追加されました。詳細については、サンプルをご覧ください。(Icaa9a
  • @ExperimentalLayout アノテーションを追加しました。ConstraintLayout、FlowRow、FlowColumn に、API が変更されることを示すタグが付けられています。(I412a8
  • Material Outlined Textfield が追加されました。(I1a518
  • TabRow.TabPosition が位置情報を格納する際、IntPx ではなく、Dp を使用するようになりました。(I34a07b/158577776
  • Modifier.ripple のサポートが終了しました。clickable はデフォルト インジケーションとしてリップルを使用するようになりました(アプリ内で MaterialTheme {} を設定している場合)。そのため、ほとんどのケースでは clickable を使用するだけでリップル インジケーションをコストなしで利用できます。リップルの色 / サイズ / 境界パラメータをカスタマイズする必要がある場合は、RippleIndication を手動で作成して、インジケーション パラメータとして clickable に渡します。(I101cdb/155375067
  • Scaffold API が改良されました。カスタマイズ性を高めるため、一部のパラメータの名前の変更や、新しいパラメータの追加が行われています。Fab、TopBar、BottomBar のサイズをクエリするためのゲッターが追加されています。(I0e7ce
  • ストローク サイズをカスタマイズできるように、CircularProgressIndicator に strokeWidth パラメータが追加されました。LinearProgressIndicator のストローク サイズ(高さ)を変更するには、Modifier.preferredHeight() などのサイズ修飾子を使用します。(Icea16b/154919081
  • GestureScopePartialGestureScoperelativeOffset(x, y) が追加されました。これにより、コンポーネントのサイズを基準とする値を持つ Offset インスタンスを生成できるようになります。たとえば、relativeOffset(.1f, .2f) の場合、x がコンポーネントの幅の 10% で、y がコンポーネントの高さの 20% である Offset インスタンスを意味します。(Ia4bf7b/158291007
  • ダブルタップや長押しを挿入する際、挿入するジェスチャーの継続時間を指定できるようになりました。(I51c97b/155464717
  • コンポーネントの共通座標にアクセスするために、GestureScope と PartialGestureScope にプロパティが追加されました。1 次元プロパティ用の Float(right など)と、2 次元プロパティ用の Offset(centerLeft など)です。

    1 次元プロパティは次のとおりです。

    • left
    • centerX
    • right
    • top
    • centerY
    • bottom

    2 次元プロパティは次のとおりです。 ・topLefttopCentertopRightcenterLeftcenter(既存。リストを完全にするために記載) ・centerRightbottomLeftbottomCenterbottomRight

    使用例:

    findByTag("widget")
        .doGesture {
            sendSwipe(topLeft, bottomRight)
        }
    

I49ef3b/158291007) ・マルチタッチ ジェスチャーを実行する際にコンポーネントをテストできるように、マルチタッチ ジェスチャー インジェクション API が追加されました。

ジェスチャーを挿入する際、部分的ジェスチャー メソッドに対してポインタ ID を指定することで、複数のポインタを指定できるようになりました。ポインタ ID が指定されていない場合は、ポインタ 0(デフォルト ポインタ)と見なされます。なお、プレハブ ジェスチャー(sendClick および sendSwipe、ならびにそのいずれかをベースとするすべてのメソッド)は、いずれもデフォルト ポインタを使用します。PartialGestureScope 内の以下のメソッドに、ポインタ ID を受け入れるオーバーロードが追加されました。 ・sendDownsendMoveTosendMoveBysendUp

各アクティブ ポインタ(down 状態のアクティブ ポインタ)の現在の位置の全リストが、各イベント内に格納されるようになりました。上記のメソッドは直ちにイベントを送信します。また、3 つの新しいメソッドが導入されています。 ・movePointerTomovePointerBysendMove

movePointerTomovePointerBy メソッドは、ポインタの現在の位置を変更しますが、それを反映するイベントは送信しません。そのため、ジェスチャーの現在時刻を進めることもありません。これにより、複数のポインタを同時に移動することができます。最後の sendMove メソッドは、パラメータを受け入れず、単に move イベントを送信するだけです。これにより、すべてのポインタ移動を「フラッシュ」できます。movePointerXx を使用してポインタを更新してから、down イベントまたは up イベントを送信した場合、move イベントの直後に down イベントまたは up イベントが送信されます。

また、どのメソッドのタイミングも若干変更されています。今後、sendDownsendUp は、ジェスチャーの時間を進めることがないため、down であるか up であるかを問わず、複数のポインタを同時に送信することができます。他のメソッドはすべて、ジェスチャーの時間を進めます。現在のところ、タイムデルタを変更することはできません。(I9acacb/157142514) ・範囲内のすべてのアノテーションを返す AnnotatedString.getStringAnnotations が追加されました。(I1fa00

バグの修正

  • 低レベルのステートレス アニメーション API が導入されました。(I63bf7
  • Recompose composable は、有用な抽象化ではなくなりました。ほとんどの場合、再コンポーズは、MutableState 割り当ての結果として生じます。それ以外の場合は、invalidate 関数を使用して、現在のスコープの再コンポーズをトリガーすることをおすすめします。(Ifc992
  • ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。Px クラス全体が削除されています。(I3ff33
  • ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(Id3434
  • クロスフェードの初期値として null を使用できるようになりました。(Iad6a4b/155947711
  • ピクセル パラメータに関して Dp とプリミティブ型だけに依存するように大規模なリファクタリングを行う一環として、各種の compose クラス内で Px クラスを使用しないように変更しました。(I19d02
  • androidx.ui.foundation.TextFieldValueandroidx.ui.input.EditorValue のサポートが終了しました。このタイプを使用する TextFieldFilledTextFieldCoreTextField の各 composable もサポートが終了しています。代わりに androidx.ui.input.TextFieldValue を使用してください。(I4066db/155211005
  • ディスパッチ中にサブコンポーズを通じて PointerInputFilters が削除されるとポインタ入力ディスパッチがクラッシュを引き起こす問題を解決しました。この問題は解決済みです。(I1f48bb/157998762
  • ディスパッチ中にサブコンポーズを通じて PointerInputFilters が削除されるとポインタ入力ディスパッチがクラッシュを引き起こす問題を解決しました。この問題は解決済みです。(Iab398b/157998762
  • Radius クラスをインライン クラスにリファクタリングしました。コンパニオン作成メソッドを削除し、関数コンストラクタに置き換えました。この関数コンストラクタは、デフォルト パラメータで、y 軸沿いの半径が、必須の x 軸半径パラメータの半径と一致するようになっています。

    DrawScope.drawRoundRect を更新し、2 つの float 値を使用して x 軸沿いと y 軸沿いの半径を個別に示すのではなく、単一の Radius パラメータを使用するようにしました。(I46d1b

  • TextField のカーソルが、点滅アニメーションで表示されるようになりました。(Id10a7

  • 部分的ジェスチャーが、GestureToken を順に渡していく必要がなくなりました。(Id7ae5

  • 再コンポーズ時にクラッシュを引き起こす ConstraintLayout バグを修正しました。(Ibee5ab/158164341

  • DropdownMenuItem に対して onClick が呼び出されない問題を解決しました。(I3998bb/157673259

  • Locale および LocaleList 用のパッケージ名を androidx.ui.text から androidx.ui.intl に変更しました。(I8132c

バージョン 0.1.0-dev13

2020 年 6 月 10 日

androidx.ui:ui-*:0.1.0-dev13 がリリースされました。バージョン 0.1.0-dev13 に含まれる commit については、こちらをご覧ください

既知の問題

  • アプリが androidx.core:core-ktx:1.2.0 に依存していて、複数のフォント / フォントの太さを含む FontFamily が使用されている場合、フォント選択が通常のフォントの太さでレンダリングされます。Google はこの問題の解決に取り組んでまいりますが、現時点では回避策として androidx.core:core-ktx:1.2.0-alpha01 または androidx.core:core-ktx:1.1.0 を使用してください。

バージョン 0.1.0-dev12

2020 年 5 月 27 日

androidx.ui:ui-*:0.1.0-dev12 がリリースされました。バージョン 0.1.0-dev12 に含まれる commit については、こちらをご覧ください

API の変更

  • DpPxSizePositionBoundsPxPositionPxSizePxBoundsIntPxIntPxSizeIntPxPositionIntPxBoundsAnimationVectoranimate() のサポートを追加しました。(Ib7518b/156559139
  • マテリアル デザインのメニュー実装 ui-materialDropdownMenu コンポーネントを追加しました。(I9bb3db/135742486
  • サポートが終了した LayoutTag() を削除しました。代わりに Modifier.tag() を使用してください。(If8044b/157020665b/156577646
  • サポートが終了した Modifier.matchParent() を削除しました。代わりに Modifier.matchParentSize() を使用してください。(If8044b/157020665b/156577646
  • ピクセル パラメータについて Dp およびプリミティブ タイプのみを使用する大規模なリファクタリングの取り組みの一環として、各種のコンポーズ クラス内の Px クラスの使用を置き換えました。(I57bffb/156681014
  • Modifier.semantics のサポートが再開され、高レベルのコンポーネントでの使用が可能になりました。(I4cfdcb/153198273b/154023028
  • DoubleTapGestureFilter により、ツリー全体で SingleTapGestureFilter のあいまいさが除去されました。(If92b1b/147609897b/148553848b/138605697b/148464969
  • Alignment API を更新し、絶対アラインメント(RTL コンテキストで自動ミラーリングを行わない)のサポートを追加しました。(I38cd3b/153633345
  • VerticalScroller は、すぐに利用可能な Column を提供するようになりました。また、HorizontalScroller は、すぐに利用可能な Row を提供するようになりました。(Ieca5db/157020670
  • Modifier.indication が基盤パッケージに追加されました。これを使用して、操作可能なカスタム要素に押下、ドラッグ、その他のインジケーションを表示できます。(I8425fb/155287131
  • VerticalScrollerHorizontalScroller は、ScrollerPositionisReversed が設定されている場合に逆スクロールをサポートするようになりました。(I953bdb/155852672
  • テキスト レイアウトへの composable の追加がサポートされるようになりました。(I1373cb/139320966
  • サポートが終了した DrawBackground API が削除され、Modifier の drawBackground 拡張機能 API に置き換えられました。色、ブラシ、ペイントに関する drawBackground 実装をリファクタリングし、コードパスを削減するとともに、コンポジションの一部として Modifier を作成する必要をなくしました。(I0343ab/155999867
  • Modifier.padding(InnerPadding) が追加されました。(I94985b/157133803
  • Row と Column で、サポートが終了した RowAlign と ColumnAlign を削除しました。(If60d4b/154524540b/155858731
  • offsetPx レイアウト修飾子を追加しました。これを使用して、px 単位で(動的)オフセットを定義できます。(I5af57b/154841615
  • SoftwareKeyboardController を使用して、ソフトウェア キーボードの表示 / 非表示を手動で切り替えられるようになりました。(Ifb9d6b/155427736
  • Emphasis.emphasize() の名前を Emphasis.applyEmphasis() に変更しました。(Iceebeb/152874916
  • テストでピンチ操作をシミュレートするためのユーティリティを追加しました。(If6c42b/145593752
  • 使用されている ui-geometry モジュールに重複する Size クラスが存在するため、未使用の Size クラスを削除しました。(I1b602b/156546424
  • AnnotatedString.Item の名前が AnnotatedString.Range に変更されました。(I2d44db/156126205
  • Compose のコンパイラにおけるコード生成の仕様を変更しました。変更前の Compose コンパイラでは、コンポーズ可能な関数の呼び出し部分を変換していました。変更後はコンポーズ可能な関数の本文を変換し、呼び出し部分での変換は一部を除いて行いません。

    つまり、Compose ランタイムとのロジック上のやり取りは、呼び出し部分ではなく関数本文の開始部分で発生します。

    この変更は Compose の使用方法に関わらずソース互換であり、Compose を使用していても通常はコードを更新する必要はありません。

    この処理をサポートするため、すべてのコンポーズ可能な関数の JVM の署名が変更されました。コンポーズ可能な関数でパラメータを 1 つ受け取る場合、3 つのパラメータを受け取る関数に変換されます。追加されるパラメータは Composer と「key」整数です。ビットマスク整数として、呼び出しを通じてメタデータを伝達する際に使用されます。

    なお、デフォルトの引数がコンポーズ可能な関数に変換されるようになっています。変換時に、関数の合成によるオーバーロードがデフォルトで行われることはないため、定義される関数の数は少なくなります。

    今回の変更による確認済みの意図的な動作変更は次のとおりです。

    1. 一部の呼び出しが、変更前にはスキップされなかった箇所でスキップされる。
    2. デフォルトの引数を含む式で、コンポーズ可能な式が正しく登録および処理される。

    最適化に関しては、次の内容が含まれます。

    1. パラメータの比較結果が、コールグラフを介して他のコンポーズ可能な関数に伝達される。その結果、実行時の比較処理が減ってスロット テーブルのサイズが小さくなる。また、スキップされるコンポーズ可能な関数が以前よりも増える。
    2. コンパイル時に「静的」と判断されたパラメータが、実行時に比較または保存されなくなる。その結果、比較処理が減ってスロット テーブルのサイズが小さくなる。
    3. 関数の本文に制御フロー構造が使用され、生成されるグループの数が最小限に抑えられる。その結果、スロット テーブルのサイズが小さくなり、実行時の処理が減少する。
    4. 関数に渡される未使用のディスパッチ パラメータとレシーバ パラメータが、関数の本文内で使用されていない場合には、関数のスキップを行うかどうかの判断には用いられない。

    互換性を破る変更のほとんどは、コンパイラが直接ターゲットとする API に関するものであり、Compose の一般的な使用には影響しません。

    1. Composer::startExpr が削除されました。
    2. Composer::endExpr が削除されました。
    3. Composer::call のサポートが終了しました。
    4. key の non-varargs のオーバーロードが削除されました。今後は vararg バージョンを使用してください。
    5. Pivotal アノテーションのサポートが終了しました。代わりに key を使用してください。
    6. ScopeUpdateScope::updateScope が Function1 ではなく Function3 を想定するように変更されました。
    7. restartableFunction と restartableFunctionN が追加のコンパイル時パラメータを含むように更新されました。

    I60756b/143464846

@Model アノテーションのサポートが終了

  • @Model アノテーションのサポートが終了しました。代わりに statemutableStateOf を使用してください。このサポート終了は、慎重に検討されたうえで決定されたものです。

    サポート終了の理由

    主な理由を以下に示します。

    • API に関する項目と概念について、指南が必要な内容を減らす。
    • 他の同等のツールキット(Swift UI、React、Flutter)との連携をより緊密にする。
    • サポート終了の判断を取り下げることができる。@Model はいつでも元に戻すことができます。
    • @Model の設定に関して、以下のようなまれな使用例をなくし、回答の難しい質問が出ないようにする。
      • @Model データクラス、等式、ハッシュコードなど。
      • 一部のプロパティを監視対象とし、その他のプロパティは監視対象としない方法。
      • 監視を行う際に使用する構造等価式と参照等価式の指定方法。
    • システムへの「過度な期待」を減らす。システムの能力が過信されること(リストの差分取得の方法がすでにあると考えるなど)が少なくなるようにします。
    • 監視の粒度をより直感的にする。
    • リファクタリングにより、変数をクラスのプロパティにできる可能性を高める。
    • State を個別に操作して最適化が行える可能性を高める。
    • エコシステムの他の部分との連携をより緊密にし、State が変更不能であることによる曖昧さを軽減する(変更可能な State を活用する)。

    移行メモ

    @Model の既存の使用例については、下の 2 つの方法のいずれかに、ほぼすべて容易に変換できます。以下に、2 つのプロパティを含み、コンポーズ可能な関数内で使用される @Model クラスを例として示します。

    @Model class Position(
     var x: Int,
     var y: Int
    )
    
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    方法 1: State<OriginalClass> を使用してコピーを作成する

    このアプローチは、Kotlin のデータクラスを使用することで簡単に実施できます。基本的には、以前のすべての var プロパティをデータクラスの val プロパティにして、remember ではなく state を使用します。そして、データクラスの copy(...) コンビニエンス メソッドを使用して、元のクラスのコピーに state の値を割り当てます。

    このアプローチが機能するのは、State インスタンスが作成されたスコープと同じスコープで、クラスに対する変更だけが行われた場合であることに注意してください。スコープ外でクラスの変更が内部的に行われており、その監視に依存している場合は、次のアプローチを使用します。

    data class Position(
     val x: Int,
     val y: Int
    )
    
    @Composable fun Example() {
     var p by state { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p = p.copy(x=it) }
       onYChange={ p = p.copy(y=it) }
     )
    }
    

    方法 2: mutableStateOf とプロパティ委任を使用する

    このアプローチは、Kotlin でのプロパティ委任と mutableStateOf API を使用することで簡単に実施できます。コンポジションの外部に MutableState インスタンスを作成することが可能です。基本的には、元のクラスのすべての var プロパティを、プロパティ委任として mutableStateOf を持つ var プロパティに置き換えます。このアプローチには、クラスの使用方法の変更が一切なく、クラスの内部実装のみが変更されるという利点があります。ただし、各プロパティが個別に監視および登録されるようになるため、元の例とまったく同じ動作にはなりません。リファクタリング後に再度コンポジションが作成される際には、対象が限定されるという利点もあります。

    class Position(x: Int, y: Int) {
     var x by mutableStateOf(x)
     var y by mutableStateOf(y)
    }
    
    // source of Example is identical to original
    @Composable fun Example() {
     var p = remember { Position(0, 0) }
     PositionChanger(
       position=p,
       onXChange={ p.x = it }
       onYChange={ p.y = it }
     )
    }
    

    I409e8b/152050010b/146362815b/146342522b/143413369b/135715219b/143263925b/139653744

バグの修正

  • AnnotatedString でフォントの太さとフォント スタイルがネストされると、テキストが正しくレンダリングされないバグを修正しました。(I77a9db/155081453
  • CanvasScope の実装を統合し、DrawScope と ContentDrawScope のみとしました。
    • CanvasScope の名前を DrawScope に変更しました。
    • DrawScope を更新し、Density インターフェースを実装して LayoutDirection を提供するようにしました。
    • ContentDrawScope の DrawScope サブクラスを削除しました。
    • Painter と PainterModifier が更新され、RTL プロパティ自体が維持されなくなりました(手動で提供しなくても DrawScope によりすでに提供されているため)。(I1798eb/155918846
  • ピクセル パラメータについて Dp およびプリミティブ タイプのみを使用する大規模なリファクタリングの取り組みの一環として、各種のコンポーズ クラス内の Px クラスの使用を置き換えました。(Iede0bb/156681014

バージョン 0.1.0-dev11

2020 年 5 月 14 日

androidx.ui:ui-*:0.1.0-dev11 がリリースされました。バージョン 0.1.0-dev11 に含まれる commit については、こちらをご覧ください

API の変更

  • クロスフェードでオプションの AnimationBuilder パラメータを使用して、アニメーションを構成できるようになりました。(I6d6e0
  • WithConstraints 後置ラムダ API が変更されました。2 つのパラメータに代わってレシーバ スコープが設けられ、Constraints と LayoutDirection に加え、Dp 単位で指定できる minWidthmaxWidthminHeightmaxHeight プロパティが用意されました。(I91b9ab/149979702
  • LayoutModifier2 の名前を LayoutModifier に変更しました。(Id29f3
  • サポートが終了した LayoutModifier インターフェースを削除しました。(I2a9d6
  • HorizontalScrollerVerticalScroller が、保存されたインスタンス状態を使用してスクロール位置を復元するようになりました。(Ia0faeb/155075048
  • FocusManagerAmbient が削除されました。フォーカスを取得するには FocusModifier.requestFocus を使用してください。(Ic4826
  • テーブル レイアウトは、更新された API で再び利用できるようになるまで、一時的に削除されました。(Id88a7
  • Canvas オブジェクトをラップしてステートレスの宣言型描画 API サーフェスを公開する CanvasScope API を作成しました。変換は固有のレシーバ スコープ内に含まれ、サイズ設定情報のスコープも対応するインセット境界に設定されます。描画オペレーションを構成するためにコンシューマが独自の Paint 状態オブジェクトを維持する必要はありません。
    • CanvasScopeSample を追加しました。また、デモアプリを更新して、宣言型グラフィックのデモを追加しました。(Ifd86d
  • ColoredRect が削除されました。代わりに、BoxdrawBackground 修飾子とともに使用してください。(I983c7b/152753731
  • カーソルの色のカスタマイズを TextField に追加しました。(I6e33f
  • onTextInputStarted コールバックで提供される SoftwareKeyboardController を使用して、ソフトウェア キーボードの表示 / 非表示を切り替えられるようになりました。(I8dc44b/151860051
  • TextField で使用されている TextFieldValue は、次のように使用すると、アクティビティが再作成されても保持できるようになりました: var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }I5c3ceb/155075724
  • よく使用されるパラメータを Text() に追加しました。現在、Text(style = TextStyle(textAlign = TextAlign.Center)) などの少数のパラメータを渡すローカル テキスト スタイルを作成している場合は、次のようにパラメータを直接指定するだけで済みます: Text(textAlign = TextAlign.Center)I82768
  • フォーカス サブシステムと統合するために、CoreTextField/TextFieldfocusIdentifierパラメータを FocusNode に置き換えました。(I7ea48
  • TextField の更新 - 水平方向のディメンションでは、許可されたすべての使用可能なスペースを占有します(Ib08dfb/154638552)。
  • AlignmentLineOffset composable のサポートが終了しました。代わりに relativePaddingFrom() 修飾子を使用してください。CenterAlignmentLine composable が削除されました。(I60107
  • 対応する受信制約が指定されていない場合にのみ、ラップされたレイアウトにサイズ制約を設定する defaultMinSizeConstraints レイアウト修飾子を追加しました(最小制約の場合は 0、最大制約の場合は無限大)。(I311eab/150460257
  • Container が削除されました。代わりに Box を使用してください。(Ibbc2bb/151407926
  • サポートが終了した LayoutWidth/Height/Size 修飾子を削除しました。(Ib0bc1
  • オフセット修飾子のデフォルト パラメータ値を追加しました。(I37f06
  • 対称パディング修飾子を追加しました。(I39840b/152941819
  • サポートが終了した LayoutAspectRatio 修飾子を削除しました。(I65a74
  • ラップされたレイアウトが反対軸の制約なしで測定される原因となっていた、幅と高さの修飾子のバグを修正しました。(I210b8b/154797971
  • 無効化されたボタンが視覚面でマテリアル デザイン仕様に従うようになりました。(I47dcbb/155076924
  • FilledTextField が ime アクション、視覚的変換、キーボード タイプをサポートするようになりました。(I1f9cfb/155075201
  • ストローク サイズをカスタマイズする strokeWidth パラメータを CircularProgressIndicator に追加しました。LinearProgressIndicator のストローク サイズ(高さ)を変更するには、Modifier.preferredHeight() または別のサイズ変更子を使用してください。(Icea16b/154919081
  • FilledTextField の末尾のアイコンと先頭のアイコンを操作し、エラー状態を処理するスロット API を追加しました。(Ic12e0
  • メソッド sendDownsendMoveTosendMoveBysendUpsendCancel を持つ PartialGestureScope レシーバの doPartialGesture アクションを追加しました。(I6b058b/152477560
  • メソッド sendDownsendMovesendUpsendCancelInputDispatcher に追加し、これらの個々のタッチイベントを 1 つのジェスチャーに結合する GestureToken を追加しました。(Ibd278b/152477560
  • merge() 関数に委任する TextStyle /ParagraphStyle / SpanStyle 用のプラス演算子を追加しました。(Ia1add
  • ui-framework プロジェクトと ui-platform プロジェクトが ui-core にマージされました。したがって、これらのモジュールへの依存関係はすべて ui-core にのみ依存する必要があります。(/I70067

バグの修正

  • キャンバスを公開するハイレベルの Compose API を更新して、代わりに CanvasScope を公開するようにしました。これにより、ユーザーが独自の Paint オブジェクトを維持管理する必要がなくなります。引き続きキャンバスの利用が必要なユーザーは、drawCanvas 拡張メソッドを使用できます。このメソッドにより、対象のキャンバスに対して Draw コマンドを実行するコールバックが行われます。(I80afd
  • サポートが終了した LayoutAlign 修飾子を削除しました。(I10877
  • テキスト関連のオペレーション用に Toolbar を追加しました。(I49d53

バージョン 0.1.0-dev10

2020 年 4 月 29 日

androidx.ui:ui-*:0.1.0-dev10 がリリースされました。バージョン 0.1.0-dev10 に含まれる commit については、こちらをご覧ください

API の変更

  • API でのすべての null 許容型 Color の使用が null 値非許容型で置き換えられ、null ではなく Color.Unset を使用するようになりました(Iabaa7
  • LayoutLayoutModifier2 の組み込み関数に IntrinsicMeasureScope レシーバを追加しました。これにより、暗黙的に伝播されるレイアウト方向を持つ組み込みクエリ API が提供されます。(Id9945
  • LayoutLayoutModifier の子は、異なるレイアウト方向で測定できます。(Ibd731
  • 同じ親レイアウト内の子の描画順序を制御する新しい Modifier.zIndex() が追加されました。DrawLayerModifier の elevation プロパティは shadowElevation に名前が変更されて、描画順序を制御しなくなりました。DrawShadow のパラメータの順序が変更されました。最初のパラメータは elevation に、2 番目のパラメータは shape になりました。デフォルトは RectangleShape です。(I20150b/152417501
  • OwneronSizeChangeonPositionChange を削除しました。(I5c718
  • Constraints2 を追加しました。これは、IntPx ではなく Int 制約値のみをサポートする Constraints のコピーです。IntPx の削除により、すべての整数型の制約が Android のようなピクセルと見なされるようになります。
    • また、最終的に IntPxSize を置き換える IntSize を追加しました。(I4b43a
  • InteractionStateInteraction が追加され、押下やドラッグなどの UI の状態の変化に反応するコンポーネントを簡単に作成できるようになりました(Icfe25b/152525426)。
  • RectangleShapeandroidx.ui.foundation.shape.* から androidx.ui.graphics.* へ移動しました。(Ia74d5b/154507984
  • TextField API の更新 - onFocus コールバックと onBlur コールバックを、ブール値パラメータ(I66cd3)を持つ onFocusChange(Boolean) コールバックに統合しました。
  • FontLoader を削除しました。代わりに fontResource を使用してください。(Id0308
  • 未使用の MaskFilter API は、使用方法が制限され、ほとんどのユースケースでハードウェア アクセラレーション用に最適化されていないため削除されました。(I54f76
  • 未設定の Color が追加され、色をボックス化せずに未設定の値を表せるようになりました。(If901a
  • Canvas.rotateCanvas.scale 拡張メソッドが追加され、変換にオプションのピボット座標を使用するようになりました。デフォルトでは、現在のキャンバス変換の左上隅になります。
    • また、Canvas.rotateRad が一貫性を保つための拡張メソッドになりました。(Ibaca6
  • FAB と拡張 FAB の既定色が MaterialTheme.colors.secondary に変更されました。(I3b9b9b/154118816
  • ComposeTestRule.setContent {} の後に onIdle() を明示的に呼び出す必要がなくなりました。(Iafb2eb/154079800
  • カスタムの ActivityTestRuleAndroidComposeTestRule に渡せるようになりました。(I38206b/153623653
  • getLineStartgetLineEndgetEllipsisOffsetgetEllipsisCountTextLayoutResult に追加しました。(Ibc801
  • FontWeight.lerp は、スナップしなくなりましたが、データクラスのままです。(I521c2
  • FontWeight コンストラクタが公開され、データクラスではなくなりました。(Id6b1f

バグの修正

  • 基になる ImageAsset のサブセクション描画をサポートする追加オプションの rect パラメータを ImagePainter に導入します。(I0ea9e
  • アイテムを削除する際に AdapterList でクラッシュする問題を修正しました。(Ic64b0b/153195921
  • ファインダー(findByTag など)が機能するために ComposeTestRule の使用が必須になりました。(I75bb9b/153565271

バージョン 0.1.0-dev09

2020 年 4 月 15 日

androidx.ui:ui-*:0.1.0-dev09 がリリースされました。バージョン 0.1.0-dev09 に含まれる commit については、こちらをご覧ください

API の変更

  • Alignment を任意の値でインスタンス化できるようになりました。1D Alignment を追加しました。(Ia0c05
  • alignToSiblings now accepts aMeasuredinstead ofPlaceable`。(I5788d
  • I45f09b/152842521
    • ScaleFit の名前を ContentScale に変更しました。
    • ContentScaleui-graphics から ui-core モジュールに移動し、Alignment API と同じモジュールで動作するようにしました。
    • FillMaxDimension の名前を Crop に変更しました。
    • FillMinDimension の名前を Fit に変更しました。
    • ImageView.ScaleType の同等の名前と一致するように、Fit の名前を Inside に変更しました。
    • CropAlignment.Center の組み合わせで ImageView.ScaleType.CENTER_CROP と同じ結果が得られ、Alignment.Center とともに使用した FitImageView.ScaleType.FIT_CENTER と同じ結果が得られることを示すドキュメントを追加しました。
    • Alignment.Center とともに Inside を使用すると、ImageView.ScaleType.CENTER_INSIDE と同じ結果が得られます。
  • 描画修飾子の RTL サポートを追加しました。(I0aaf9
  • XML から Android ビューを拡張する API がリリースされました。詳細については、ViewInCompose のデモをご覧ください。(I42916
  • LayoutCoordinates 用に positionInParentboundsInParent を追加しました。(Icacddb/152735784
  • DrawLayerModifierdrawLayer()clipToBoundsclipToOutline がデフォルトで false になりました。(I0eb8bb/152810850
  • LayoutResult の名前を MeasureResult に変更しました。(Id8c68
  • レイアウト修飾子を定義するための新しい API である LayoutModifier2 を追加し、LayoutModifier は非推奨になりました。(If32ac
  • ProvideContentColor を削除し、Providers で直接 ContentColorAmbient を使用するようになりました。(Iee942
  • テキストに色パラメータを追加しました。これにより、テキスト スタイルの色をテーマのスタイルに手動で統合する必要がなくなります。(I41a66
  • マテリアル デザイン仕様に従ってシェイプテーマ設定システムを更新しました。ほとんどのコンポーネントで使用できる小、中、大のシェイプを提供できるようにしました。(Ifb4d1
  • LayoutDirectionAmbient は非推奨になりました。ロケールで定義されたレイアウト方向を読み取るには、ConfigurationAmbientlocaleLayoutDirection を使用します。(I851b1
  • 新しい LifecycleOwnerAmbient が利用できるようになりました。これで、Compose UI で使用している Activity は androidx.activity.ComponentActivity(または AppCompatActivity)を拡張しなければなりません。android.app.ActivitysetContent は非推奨になりました。(IDB25ab/153141084
  • ポップアップ対応 RTL。(Ib6657
  • ClipboardManager を追加しました。(I1dd2b
  • ConstraintLayout の子のサイズをカスタマイズするためのサポートを追加しました。(Idb1a5
  • OnChildPositioned を削除しました。デベロッパーは Modifier.onChildPositioned 修飾子を使用する必要があります。(I5ade7b/151141173b/151641453b/151818355
  • toFrameworkRecttoFrameworkRectF の名前をそれぞれ toAndroidRecttoAndroidRectF に変更し、compose とその上に構築されている Android フレームワーク API 間のオブジェクト変換の命名規則に準拠させました。これらの API に関するドキュメントも更新しました。(I86337
  • EdgeInsets の名前を InnerPadding に変更しました。Material Button の innerPadding パラメータの名前を余白サイズに変更しました。(I66165
  • 固有の測定値に対するサイズ変更の修飾子を追加し、この目的のためのコンポーネントを非推奨にしました。(I8295d
  • 非推奨の WrapCenter の composable を削除しました。(I29e23
  • スライダーがステートレスになりました。他のコントロールと同様に、ユーザー自身が状態を渡して更新する必要があります。(Ia00aa
  • StaticDrawer を削除しました。必要な場合は、マテリアル指定の幅の Box を使用してください。(I244a7
  • 修飾子パラメータを ListItem に追加し、後置ラムダ本体がもっと上に表示されるようにパラメータを並べ替えました。(I66e21
  • TypographydefaultFontFamily コンストラクタ パラメータを追加しました。これにより、ファミリー セットのない指定された TextStyle に使用されるデフォルトのフォント ファミリーを指定できます。(I89d07
  • API サーフェスから Material Data Table を一時的に削除しました。(Iaea61
  • Divider composable のパラメータの名前を変更しました。(Ic4373
  • 多くの Material コンポーネントの名前で「子」の末尾パラメータの名前が変更されました。名前付きパラメータで使用したあとは、新しい名前を使用してください(あるいは末尾のラムダ構文を使用してください)。(Ia6d19
  • MaterialTheme.emphasisLevels を削除し、EmphasisAmbient.current を使用して強調レベルを取得するようにしました。(Ib5e40
  • savedInstanceState() で null 許容型を使用できるようになりました。(I6847fb/153532190
  • ui-rxjava2(RxJava2 のアダプターを含む新しいアーティファクト)を追加しました。(Ifab4bb/153369097

    • 使用例:
    val value by observable.subscribeAsState()
    
  • ui-livedata(Live Data 用アダプターを含む新しいアーティファクト)を追加しました。(Ie9e8cb/150465596

    • 使用例:
    val value by liveData.observeAsState()
    

バグの修正

  • verticalGravity パラメータと horizontalGravity パラメータをそれぞれ RowColumn に追加しました。(I7dc5a
  • ui-text module was renamed asui-text-core`(I57dec
  • DrawModifier API を改良しました。(Ibacedb/152919067
    • draw() ContentDrawScope のレシーバ スコープを作成しました。
    • draw() のすべてのパラメータを削除しました。
    • DrawScope のインターフェースは以前の CanvasScope と同じです。
    • ContentDrawScopedrawContent() メソッドを追加しました。
  • runOnIdleComposerunOnUiThreadComposeTestRule のメソッドではなくグローバル関数になりました。(Icbe8f
  • (変更可能)State プロパティのデリゲート演算子を Kotlin 1.4 プロパティの委任最適化をサポートするために拡張に移動しました。by state { ... } または by mutableStateOf(...) を引き続き使用するには、呼び出し元はインポートを追加する必要があります。(I5312c
  • ColoredRect が非推奨になりました。代わりに Box(Modifier.preferredSize(width, height).drawBackground(color)) を使用してください。(I499fab/152753731
  • activity.setContent { } ブロックの中に配置した最初のレイアウトの測定方法を変更しました。以前は、アクティビティ画面全体を表示していましたが、レイアウトを Stack の中に配置するようにしました。画面よりも小さくすることができ、画面の左上に配置されます。以前の動作が必要な場合は、レイアウトに Modifier.fillMaxSize() を適用できます。(Ie88a7b/153453714
  • ui-text-compose モジュールの名前を ui-text に変更しました。ui-textCoreTextCoreTextFieldの composables を追加しました。(Ib7d47
  • ui-framework/CoreTextCoreTextFieldの composable を ui-text-compose の下に移動しました。プロジェクトに ui-text-compose を含めることをおすすめします。(I32042
  • Alignment ではなく垂直方向または水平方向の Alignment を受け入れるように、wrapContentWidthwrapContentHeight を更新しました。垂直方向または水平方向の Alignment を受け入れるように、重力修飾子を更新しました。カスタムの連続 Alignment をサポートすることを目的として RowColumnStack を更新しました。(Ib0728
  • ImageAsset からのピクセル情報の問い合わせをサポートするために PixelMap API を追加しました。(I69ad6
  • 塗りつぶしテキスト フィールドの Material Design の実装を追加しました。(Ic75cd
  • androidx ポリシーに合わせて、ui-android-text パッケージ名(androidx.text)を androidx.ui.text.platform に置き換えました。(I42711

バージョン 0.1.0-dev08

2020 年 4 月 1 日

androidx.ui:ui-*:0.1.0-dev08 がリリースされました。バージョン 0.1.0-dev08 に含まれる commit については、こちらをご覧ください

API の変更

  • 特定のレイヤに対する描画コマンドの表示リストをオフセットできるように、translationX/Y プロパティを追加しました。これは、アニメーションやタッチイベントに応答してコンテンツを移動する場合に便利です。(I8641c
  • レイヤ上の特定のポイントを中心とした回転とスケーリングをサポートするために、pivotX パラメータと pivotY パラメータをレイヤ API に追加しました。(Icf7c3
  • Draggable を修飾子に移動しました。(ID9b16b/151959544
  • Textandroidx.ui.core から androidx.ui.foundation パッケージに移動しました。(I87ce5
  • Checkbox、Switch、Toggleable に enabled パラメータを追加しました。(I41c16)。
  • リップルを Modifier に変更しました。Clickable はまだ変換されていませんが、推奨される使用法は Clickable(onClick = { ... }, modifier = ripple()) です。(Ie5200b/151331852b/150060763
  • ベクター グラフィック用の既存のサブコンポジション API を置き換えるために、VectorPainter API を追加しました。サブコンポジションは、DrawModifier ではなく、VectorPainter オブジェクトになります。
    • 以前の DrawVector composable は非推奨になり、VectorPainter に置き換わりました。
    • Image(Painter) API の名前を PaintBox(Painter) に変更しました。
    • ImageAsset の代わりに VectorAsset を使用する以外は Image のように動作する Vector composable を作成しました。(I9af9a)(b/149030271
  • ParentData composable は非推奨になりました。ParentDataModifier インターフェースを実装する修飾子を作成するか、測定ブロック内で認識するためにレイアウトの子にタグを付ける必要がある場合は、LayoutTag 修飾子を使用します。(I51368b/150953183
  • OnPositioned を削除して、onPositioned 修飾子に置き換えました(I2ea3c
  • RowScopeColumnScope のメンバーに RowColumn の外部からアクセスできるようになりました。(I3a641
  • Container は非推奨になりました。代わりに Box を使用してください。(I675ceb/151407926
  • FloatingActionButton API をリファクタリングして、プリミティブではなくコンポーズ可能なラムダを受け入れるようにしました。使用方法については、最新のサンプルをご覧ください。(I00622
  • 新しい関数: savedInstanceState()rememberSavedInstanceState()。これらは state()remember() に似ていますが、保存されたインスタンスの状態のサポートが組み込まれています。(If1987b/152025209

バグの修正

  • 修飾子と演算子を工場出荷時の拡張機能に置き換えました。(I225e4
  • Center composable は非推奨になりました。これは、LayoutSize.Fill + LayoutAlign.Center 修飾子、または適切な修飾子が適用された Box または Stack の composable で置き換える必要があります。(Idf5e0
  • MaterialTheme.colors()MaterialTheme.typography() などの MaterialTheme API を関数ではなくプロパティに変更しました。既存の呼び出しからかっこを削除しました(動作上の変更はありません)。(I3565a

バージョン 0.1.0-dev07

2020 年 3 月 18 日

androidx.ui:ui-*:0.1.0-dev07 がリリースされました。バージョン 0.1.0-dev07 に含まれる commit については、こちらをご覧ください

API の変更

  • ManualAnimationClock への API の追加: hasObservers: Boolean とコンストラクタ パラメータ dispatchOnSubscribe: BooleanIaa134
  • OnPositionedModifier と OnChildPositionedModifier を追加して、OnPositioned と OnChildPositioned のコンポーズ可能な関数を置き換えました。(I2ec8f
  • レイアウトの RenderNode を追加するための修飾子である LayerModifier を追加しました。クリッピング、不透明度、回転、スケーリング、シャドウを設定できます。これにより、RePaintBoundary が置き換えられます。(I7100db/150774014
  • レイアウトの方向を親レイアウト ノードから子レイアウト ノードに伝えるようにしました。レイアウト方向修飾子を追加しました。(I3d955
  • 指定された ImageAsset を画面に描画するほか、サイズ変更やレイアウトを処理するイメージ composable を作成しました。この composable は、固有のサイズを基準として任意の Painter インスタンスを描画することと同様に、特定の固定サイズまたは最小サイズもサポートしています。(Ibcc8f
  • イメージの名前を ImageAsset に変更して、レイアウトへの参加やコンテンツの描画に使用されたイメージ データと予定されているイメージ composable の違いを見分けます。(Id5bbd
  • android.graphics.BitmapBitmap.asImageAsset() の拡張メソッドを作成して、従来の Android アプリケーション開発と compose フレームワークの組み合わせに便利な ImageAsset のインスタンスを作成しました。(Id5bbd
  • androidx.compose.ViewComposerandroidx.ui.node.UiComposer に、androidx.compose.Compose.subcomposeIntoandroidx.ui.core.subcomposeInto に移動しました。(Idef00
  • 子の varargs を受け入れる Layout Composable 関数を削除しました。(I8f7f6
  • WithConstraintsLayoutDirection パラメータを取得しました。(I6d6f7
  • レイアウト位置をオフセットするための LayoutOffset 修飾子を追加しました。(I0b8a3
  • サーフェスとカードを androidx.ui.material.surface から androidx.ui.material に移動しました。(I88a6d)(b/150863888

バグの修正

  • LayoutFlexible の名前を LayoutWeight に変更しました。このパラメータを補うために tight パラメータの名前を変更しました。(If4738
  • 不透明度の composable 関数を drawOpaity 修飾子に置き換えました。(I5fb62
  • AndroidComposeTestRule を使用するテストでは、構成のルートにアニメーション クロックが提供され、手動での一時停止、再開、詳細設定が可能になりました。(Id54c5
  • RepaintBoundary を削除して DrawLayerModifier に置き換えました。(I00aa4
  • Button、FloatingActionButton、Clickable に個別の enabled パラメータを追加しました。Button の一部のパラメータの名前と順序を変更しました。(I54b5a
  • DrawVector は、通常の composable 関数から、レイアウトの背景としてベクトルを描画する Modifier drawVector() を返すように変更されました。(I7b8e0
  • composable 関数 Clip を修飾子 drawClip() に置き換えます。DrawClipToBounds は、四角形のレイヤ境界にクリップするだけの場合に便利な修飾子です。(If28eb
  • DrawShadow の composable 関数を drawShadow() 修飾子に置き換えました。シャドウを、LayerModifier の一部として描画するようにしました。(I7112a
  • Wrap composable は非推奨になりました。これは、LayoutAlign 修飾子または Stack composable で置き換えることができます。(Ib237f
  • 新しく作成された Modifier に複数の Modifier インスタンス間で共有できる元の Painter への参照があるため、Painter.toModifier の名前を Painter.asModifier に変更しました。(I7195b
  • LayoutPadding の負の余白サイズを禁止するようにしました。負の位置オフセットには LayoutOffset を使用してください。(Ifb5b1

バージョン 0.1.0-dev06

2020 年 3 月 4 日

androidx.ui:ui-*:0.1.0-dev06 がリリースされました。バージョン 0.1.0-dev06 に含まれる commit については、こちらをご覧ください

API の変更

  • Stack コンポーネントが右から左への方向性をサポートするようになりました。(Ic9e00
  • Compose レイアウトでの RTL の初期サポート。(Ia5519
  • Icon、IconButton、IconToggleButton を追加し、AppBarIcon を削除しました。AppBarIcon の既存の用法を IconButton に直接置き換えることにより、正しいタッチ ターゲットを追加できます。使用法についてはサンプルをご覧ください。また、これらのコンポーネントで直接使用できる、マテリアル アイコンのアイコンをご覧ください。(I96849
  • String パラメータを使用する Snackbar API を削除し、コンポーズ可能なラムダを受け入れるオーバーロードを使用するようにしました。使用方法については、更新済みのサンプルをご覧ください。(I55f80
  • texticon のラムダを受け入れるように Tab API をリファクタリングしました。(Ia057e
  • BottomNavigation コンポーネントを追加しました。使用方法については、ドキュメントとサンプルをご覧ください。(I731a0
  • カスタム セマンティクス アクションの呼び出しのためのサポートを追加しました。(I8c818

バグの修正

  • LayoutPadding 修飾子で右から左方向をサポートするようになりました。(I9e8da

バージョン 0.1.0-dev05

2020 年 2 月 19 日

androidx.ui:ui-*:0.1.0-dev05 がリリースされました。バージョン 0.1.0-dev05 に含まれる commit については、こちらをご覧ください

API の変更

  • Painter API を追加しました。指定された領域にコンテンツの描画を抽象化する API を作成しました。これは Drawable API と同様に動作しますが、よりシンプルな API サーフェスを提供します。さらに、alpha などのさまざまな効果を適用し、任意の描画実装に対して ColorFilter を適用する汎用的な実装もあります。実装自体の機能により、これらの機能に対してより最適化されたサポートが提供されます。(aosp/1214802
  • アンビエント API を大幅に変更しました。詳細については、ログと Ambient<T> のドキュメントをご覧ください。(I4c7eeb/143769776
  • LayoutCoordinates を変更して providedAlignmentLines を Map ではなく Set にし、LayoutCoordinates が値を取得するために get() 演算子を実装するようにしました。これにより、修飾子ごとに新しいコレクションを作成しなくても、複数の修飾子で一連の値を変更しやすくなります。(I0245a
  • LayoutCoordinates に位置プロパティがなくなりました。LayoutModifier、回転、スケーリングを考慮すると、位置プロパティは妥当ではありません。その代わり、デベロッパーは parentCoordinates と childToLocal() を使用して、1 つの LayoutCoordinate から別の LayoutCoordinate への変換を計算する必要があります。
  • LayoutCoordinates では、サイズ プロパティに PxSize ではなく IntPxSize を使用します。レイアウトでは整数のピクセルサイズを使用するため、すべてのレイアウト サイズで浮動小数点値ではなく整数を使用する必要があります。(I9367b
  • AdapterList を追加しました。これは、表示されるアイテムのみを作成して配置するスクロール リスト コンポーネントです。現在の既知の問題は、垂直方向のみであること、子への変更のすべてのケースを完全に処理できないことなどです。(Ib351b
  • Compose 内に Android ビューを埋め込むための初期サポートを追加しました。詳細については、ViewInCompose.kt のデモをご覧ください。(I6d1ce
  • LayoutAlign が空き容量を占有しないように更新しました。(I2b14f
  • androidx.ui:ui-material-icons-core モジュールと androidx.ui:ui-material-icons-extended モジュールを追加しました。androidx.ui:ui-material-icons-extended を使用すると、Compose 内からすべてのマテリアル アイコン(material.io/icons)を直接使用できます。最もよく使われるアイコンを含む小さなサブセット(現在は 3 つですが将来的には拡張される予定です)がメインの UI マテリアル ライブラリの一部として直接追加されます。Menu のようなアイコンを使うためにこの大きな依存関係を追加する必要はありません。詳細については、androidx.ui.material.icons.Icons のドキュメントとリンク先のサンプルをご覧ください。
  • AspectRatio composable を削除し、修飾子を使用するようにしました。廃止された FlexColumn、FlexRow composable、Spacing 修飾子を削除しました。(Iec8a7
  • ButtonStyle を別の関数に置き換え、テキスト(文字列)オーバーロードを削除しました。使用方法については、更新済みの Button サンプルをご覧ください。(If63abb/146478620b/146482131

バグの修正

  • Density と DensityScope が 1 つのインターフェースに統合されました。ambientDensity() ではなく、DensityAmbient.current を使用できるようになりました。withDensity(density)ではなく、with(density)だけになりました。(I11cb1

既知の問題

  • コンポーネントのセマンティック プロパティを誤って変更すると、子のすべての状態が失われ、アニメーションの破損や、再構成間で状態が持続することに起因するあらゆる問題が発生します。ラムダは現在比較できないため、remember されていないラムダ(Scroller など)を使用してセマンティック操作を定義するコンポーネントも含まれます。この問題は次のリリースで修正される予定です。(b/148606417

バージョン 0.1.0-dev04

2020 年 1 月 29 日

androidx.ui:ui-*:0.1.0-dev04 がリリースされました。このバージョンに含まれる commit は、こちらで確認できます。

API の変更

  • ポインタ ID が普遍的に一意になりました。(I42cde
  • セマンティクス ノードのマージ。(aosp/1138236
  • Constraints の API サーフェスの改善。(I0fd15
  • PathParser および PathNode/PathCommand がリファクタリングされました。(I715ae
  • DpConstraints の API サーフェスの更新。(I712a0
  • 複数のインターフェースを実装する修飾子のサポートが追加されました。(I22c16
  • ジェスチャー検出器の残りの部分のキャンセルが実装されました。(I349f4
  • カラーに Color.compositeOver() が追加されました。(I5379d
  • androidx.ui:ui-core のいくつかの不要なクラスが削除されました: ImageByteFormatImageRepeatMatrix2I45e6b
  • Compose プロジェクトでの増分 Kotlin コンパイルが可能になりました。(b/144304390
  • 修飾子と + の連結(Ic33d3
  • LayoutTag 修飾子が追加されました。(I69fe4
  • ParagraphStyle 属性を TextStyle に追加(If0d40
  • DrawModifier が追加されました。これは変更されたレイアウトのサーフェスに描画できる修飾子タイプです。(I5fa56
  • 修飾子の格納位置を相対位置に変更(I5977f
  • 要素でスワイプを実行するためのテスト API が追加されました。(I9125a
  • レイアウトを結合して共通機能を描画するための Box コンポーネントが追加されました。(I6e2a7
  • スクローラーが Android のネイティブ フリング モーション動作を示すようになりました。(b/147493715
  • DrawBorder が Border 修飾子に置き換えられました。(Id335a
  • スクローラーのジェスチャー検出が改善されました。(I87d36
  • contentColor メタデータを基盤に追加(Icd074
  • Scaffold マテリアル コンポーネントが追加されました。Scaffold は基本的なマテリアル デザインの視覚レイアウト構造を実装します。(I7731b
  • ボタンで新しいサーフェスのパラメータ contentColor を使用(b/146210556
  • textStyle.withOpacity() が削除されました。(I8cc9a
  • Emphasis サブシステムの追加(Ife95c
  • FloatingActionButtonKt FAB プロパティが非公開になりました。(I9c121
  • Snackbar の最初の繰り返しが実装されました。(If1c08
  • ダークテーマの初期サポートが追加されました。(I6323a
  • GestureScope に size、center、localToGlobal が追加されました。(I1ea37
  • ダブルクリック ジェスチャーの挿入用 API の追加(I44902
  • sendLongClick methodsGestureScope に追加されました。(Ic7db9
  • ジェスチャー挿入で (x, y) を PxPosition に変換(Ifefa4
  • 挿入されたジェスチャーに望ましい速度が追加されました。(I3b9df
  • Compose Test API(androidx.ui:ui-test)にビットマップのキャプチャが追加されました。(I4e36c
  • doClickGestureScope に移動されました。(I56211
  • findBySubstring および対応するフィルタが FindersKt に追加されました。(Ief0b9
  • テキスト選択境界が 1 文字にリファクタリングされました。(Iff757
  • TextSpan が削除されました。(Iebece
  • Composition クラスを削除して Composer 基本クラスに置き換え(Ieadbf
  • ベクターの defaultWidth と defaultHeight が Dp を使用するように変更されました。(Iad267
  • コンポーズ可能なインライン呼び出しに関連するグループを適切に生成(Ibf739
  • ジェスチャー検出器でフラグのプロトタイピングが可能になりました。(I4b7b0
  • maxLines および ellipsis 引数を Nullable から非 Null に変更(I46dac
  • AnnotatedString が SpanStyle を使用するようになりました。(Ib6d3e
  • WithConstraints の修飾子のサポートが追加されました。(b/145399789
  • 段落スタイルを TextDelegate に受け渡し(Id2d4a
  • SpanStyle クラスが追加されました。(Ifdb4f
  • TextGeometricTransform で Nullable の Float の代わりにデフォルト値を使用(I1bf00
  • PreviewActivityandroidx.ui:ui-tooling に追加されました。(Ic8988
  • ModelObserver がシングルスレッド化されました。(b/146144712
  • ModelObserver 用のベンチマークが追加されました。(Ia176b
  • PointerInputNode がツリーから削除されたときのキャンセル コールバック呼び出し。(I7112a
  • 行と列の LayoutInflexible 修飾子が削除されました。(I0d820
  • ParentDataModifier からレイアウト修飾子を継承。(I49b6a
  • Wrapped 修飾子が追加されました。(I6f8df
  • Aligned 修飾子が追加されました。(Ifc581
  • Constraint レイアウトが Compose に追加されました。(I175ad

リファクタリング

  • グラフィックが androidx.ui:ui-core から androidx.ui:ui-graphics に移動されました。(Ic17b0
  • Dp、IntPx などのモジュールとパッケージが androidx.ui:ui-unitandroidx.ui:ui-util に変更されました。(I45fe4
  • @Composable への影響がリファクタリングされました。(Ie2686